1樓:帽子狗
ffff是的2進位制數是1111 1111 1111 1111它的反碼為1000 0000 0000 0000 符號位不變補碼就是1000 0000 0000 0001一共16個1 佔4個位元組
x為char型 資料溢位 只能儲存8個二進位制數(符號位和後面7位) 就是1000 0001
符號位為1 就是-1
2樓:匿名使用者
0xffff的二進位制是1111 1111 1111 1111char只有1個位元組,即8位,那麼賦給x將被截斷,得到1111 1111.
這個在計算機裡面是-1的補碼錶示,原碼就是 這個補碼的反碼(1000 0000 )+1
,最高位是符號位,表示負的。結果就是1000 0001,就是-1.
%d就是輸出整數的。那麼就是-1啦
3樓:一隻程式設計貓
看不懂追問
4樓:以它石攻玉
首先,x是字元型,賦值是有給的是字串,
你試試改成x=0,是不是也是-1
c語言,為什麼結果是13c語言,為什麼結果是
答案我執行過了,是 1 3 4 5,現在我來解釋一下,希望我的解釋你能夠理解 首先int a 5 1 注意到c c 語言規定是a 0 1,a 1 4,a 2 5 而不是a 1 1,a 2 4,a 3 5 2 經過 while i n k a i i 由於a i 即a 1 4,而k 3不大於a 1 不...
c語言 下列程式執行後的輸出結果是1為什麼
36 輸出 1 x 0xffff 如果用十六進位制表示的話,數前面要加0x以表示是十六進位制。ffff用二進位制表示就是16個1,1111111111111111,轉換成十進位制就是2 16 1,即65535。因為int型資料範圍是 32767 32768,二進位制在計算機中表示時,第一位是符號位 ...
c語言中和的區別,為什麼 3的執行結果是3 4的結果是 7 15的結果是 15的運算有什規律
是邏輯運算,例如 if x 3 y 3 是位運算,算這個要先把數字轉換成2進位制3 3 0011 0011 0011 3 計算方式是,相應的位上,只要有一個數是1,則結果為13 4 0011 0100 0111 7 3 15 0011 1111 1111 15 表示按位或,把要按位或運算的兩個數字按...