C語言題目

2022-11-17 13:25:03 字數 732 閱讀 1514

1樓:匿名使用者

結果是-1。

char x=0xddff; 最前面0x表示後面的數是十六進位制。ddff是兩個位元組的一個數。而x是字元型別char,只能儲存一個位元組。

按照微機原理,x儲存了低位的ff,而最後列印出來的是%d,就是將x轉化為整數型別,因為整數型別是兩位元組,所以x=0xffff。0xffff=-1,最後輸出-1

ff 到 -1 怎麼算

應該是ffff到-1怎麼算

四位16進位制數的無符號的範圍是:0——65536有符號的範圍是:-32768--32767計算機儲存資料時是採用二進位制(可以跟16進位制轉化)的補碼儲存的ffff(1111111111111111)就是-1的補碼為什麼?

(1)明確:正數的原碼、反碼、補碼是其本身,例如:1是0000000000000001.

負數的原碼是正數的原碼最高位符號位變為1,如-1是1000000000000001.負數的反碼是正數的原碼按位取反,如-1就是1111111111111110.負數的補碼是負數的反碼加1,如-1就是1111111111111111(2)

2樓:測繪地理資訊

輸出結果是-1。解釋如下:

0xddff是一個十六進位制數的整數,把它賦值給一個字元型變數,會造成資料丟失。字元型變數佔一個位元組,那麼擷取的就是低位一個位元組的資料,也就是十六進位制的ff,用二進位制表示就是11111111,而二進位制的11111111轉換成十進位制的整數,就是-1。所以輸出結果是-1。

c語言題目,求解,C語言題目求解

x就是16進位制的,0就是零字元,一個十六進位制的數佔一個位元組,零字元在算位元組時不佔位元組,之後結果就是佔一個位元組 我就說要點了。1 double x,y x 1 y x 3 2 y的值為什麼是2.0?3 2兩個整型相除得整型1。2 main x 1值為0那麼輸出的應該為0 為什麼答案是1?單...

C語言程式設計題目,c語言程式設計題目

include void main 某年1月1日是第一天 int days 0 對 i 月份 進行判斷 for i 1.i month,i days a i 1 對year進行判斷是否是閏年,是就加1,否則不加 如何判斷閏年去c課本上找 if year 閏年 days else return day...

c語言題目

迷茫中 不知道樓主這句什麼意思 第一c語言要求先宣告後使用 變數的在使用前先定義 因此 int x 放在前面 和 int a int b int c 放在一起 另外 x 是一個儲存空間 他怎麼能勾存入a,b,c 的值呢?他也只能存入一個相應的整形數值 不能寫成x scanf d d d a,b,c ...