printf及無符號型整數

2021-06-22 18:41:54 字數 453 閱讀 9294

%d

和%u的區別

unsigned int dwvalue;

printf(「%d」, dwvalue);

在dwvalue的值大於0x7fffffff時,輸出的結果會變成負數。

正確的程式應該為:

printf(「%u」, dwvalue);

無符號整數相減的話永遠不可能產生乙個負數 所以不能有以下**

unsigned int a = 6;

unsigned int b = 7;

unsigned int c = a-b;

if(c< 0)

printf("%d",c);

該**中a-b不可能是乙個負數,所以該判斷條件永遠進不去,另外,如果寫成a-b>0的話,該迴圈能進去 列印輸出的卻是-1(編譯環境為vs2008). 正確應該是用printf(「%u」,c),輸出的結果是0xffffffff.

無符號整數

計算機裡的數是用 二進位制表示的,最左邊的這一位一般用來表示這個數是正數還是負數,這樣的話這個數就是有符號整數。如果最左邊這一位不用來表示正負,而是和後面的連在一起表示整數,那麼就不能區分這個數是正還是負,就只能是正數,這就是無符號整數。中文名 無符號整數 學 科 數學 屬 性 整數詞 性 名詞 1...

無符號整數的bitmap

include include include using namespacestd 0000 0000 八個bit 位,每一位標誌乙個數是否存在 unsigned char bit table 8 unsigned char c 0 c bit table 3 將c 的第3個 右 7左0 bit ...

無符號整數 拼數字

題目 c語言 拼數字 描述 對於給定的字串行,從左至右將所有數字字元取出拼接成乙個無符號整數 字串行長度小於100,拼接出的整數小於2 31 計算並輸出該整數的最大因子 如果是素數或0,則其最大因子為自身 輸入說明 有多組資料 每組資料為一行字串行,當輸入乙個空行時表示輸入結束.輸出說明 對每個字串...