mainunsigned x1 int b1 x1 b printfu」,x1為什麼輸出結果是

2021-04-08 22:49:29 字數 954 閱讀 4905

1樓:做而論道

65535 = ffffh,這是-1的補碼。

main() { unsigned int a; int b=-1; a=b; printf("%u",a); } 程式執行後的輸出結果是

2樓:折心灬小軒

答案是你的機器能用int表示的最大真的-1的值正常的32位機可以表達4294967296個數,所以答案為版4294967295

你這道題就選

權b吧,應該是個古老的題(估計是在tc2.0上測試的)解釋如下:b=-1,是個有符號整形變數;a是個無符號整型變數,將乙個有符號整型變數的值賦給乙個無符號整型變數會發生「溢位」(實際上不是溢位,但是可以把他看做是溢位),由於大部分機器採用補碼來表示負數,所以才產生了這個錯誤,有圖有真相:

滿意採納,不滿意請追問

main() { unsingned a; int b=-1; a=b; printf("%u\n",a); } 得出的結果為什麼是65526啊?

3樓:是法國來

65535 unsigned short a;這樣的定義方式就決定了 a不可能為負數 所以當b為-1並且把這個值賦給了a的時候,造成了a的溢位,從**開始溢位,從最後面開始溢位,a的範圍是 0-65536 所以 -1從最後面開始溢位就是 65535了這個結果在不同的編譯器上可..

4樓:匿名使用者

-1在計算機裡是按補碼儲存的,最高位為1,是符號位,當把int數值轉換為unsigned時,最高位就不再是符號位了,而是數值了

假設int的儲存是2位元組

b的原碼 10000000 00000001b的補碼 11111111 11111111把b轉換為unsigned後

a=11111111 11111111=2^(16)-1=65535

索尼愛立信u1i報價,索尼愛立信u1i最新報價

u1現在大陸行貨已經上市,價位在5800左右。是款很不錯的機器。我同事用了接近2個月了 他買的是水貨 感覺非常非常非常的不錯。螢幕顯示非常非常的很好。1200w的畫素,支援人臉識別。這些在數位相機裡才能有。方面也很棒。是款值得入手的機器。但現在價位有點虛高,lz可以持幣觀望一下在購買。行貨4000不...

i 運算快還是i i 1快,i 運算快還是i i 1快

上彙編 9 int i 0 00401048 mov dword ptr ebp 4 0 10 i i 1 0040104f mov eax,dword ptr ebp 4 00401052 add eax,1 00401055 mov dword ptr ebp 4 eax 11 i 004010...

i5 1035g1和I5 10210U什麼區別

i5 1035g1和i5 10210u區別為 cpu主頻不同 動態加速頻率不同 製作工藝不同。一 cpu主頻不同 1 i5 1035g1 i5 1035g1的cpu主頻為1ghz。2 i5 10210u i5 10210u的cpu主頻為1.6ghz。二 動態加速頻率不同 1 i5 1035g1 i5...