C語言中unsignedint能顯示負數嗎

2021-03-19 18:31:05 字數 917 閱讀 7736

1樓:匿名使用者

無符號數和bai

有符號數 在儲存上du並沒有區別 在使用的時候zhi 如果符號不匹配dao c會做自動轉換

比如內 你定義了無符號的a然後容賦值一個負數 -1 就等同於a = (unsigned int)-1;

得到的a值實際上是0xffffffff (取決於編譯器,32位編譯器為這個值)

如果用%u輸出 那麼就會輸出這個數字對應的10進位制值 為2^32-1但是你用%d輸出 就等於

printf("%d", (int)a);

於是又被轉回了-1

c語言中,unsigned不應該是無符號數嗎?為什麼還是可以顯示負數?

2樓:匿名使用者

顯示成有符號還是無符號,是根據printf的格式化引數來決定的。

%d是按照有符號輸出,%u是按照無符號輸出。

3樓:止語

printf("%d", a); //還是按有符號數顯示的,應該改成:

printf("%u", a);

c語言中不是unsigned int不能表示負數嗎?

4樓:天天向上知識店鋪

unsigned表示無符號型,無符號型只能表示正值,不能表示負值。

關於在c語言中無符號整形儲存負數問題

5樓:匿名使用者

你的理解是對的。

最高位為1時,對於有符號來說,這個數是負數,而對於無符號數而言,由於最高位也是有效儲存位,所以可以儲存更大範圍的數。

話再說回來,既然是無符號數,輸出格式應該是"%u",而不是"%d",這樣才能做到「表裡如一」,「改頭換面」只會亂了自己,這不是遊戲,嚴謹是必須的。

C語言中for迴圈語句,c語言中for語句是怎麼用的

for 語句包括三個表示式,第一個和第三個可以省略,省略第一個的意思是在for之前已經對變數初始化,例如i 0 for i 5 i 和for i 0 i 5 i 意思相同 第三個省略的意思也很明顯,原來的i 可以在for迴圈語句中實現,例如 for i 0 i 5 i 和for i 0 i 5 i ...

c語言中for的用法,C語言語言中FOR的用法

你這些程式肯定是某些二流教科書上,根本就是誤導人。for後面語句 需要迴圈的 不管是一句還是多句都要加!因為加 比不加 讓程式表述得更加清楚!printf d x,y 不會報錯,printf是一個多引數的c函式,編譯的時候,printf函式本身並不知道 引號 中需要多少個引數,它只是按照順序從堆疊上...

c語言中voidcon啥意思,C語言中void是什麼意思

宣告瞭一個函式名字叫con無引數返回值為void c語言中void是什麼意思 void 被翻譯為 無型別 相應的void 為 無型別指標 常用在程式編寫中對定義函式的引數型別 返回值 函式中指標型別進行宣告。void 的作用 1.對函式返回的限定,這種情況我們比較常見。2.對函式引數的限定,這種情況...