2014-10-18 85 views
0

我試過如下:符號和無符號不工作

#include <stdio.h> 

int main(void) { 
    signed int a = 5; 
    unsigned int b = -5; 

    printf("%d\n", a); 
    printf("%d\n", b); 

    return 0; 
} 

,我也得到:

5 
-5 

所以我不明白爲什麼signedunsigned不工作,我應該得到一個錯誤?

+1

你把他們當作有符號整數在'printf'的區別,如果你想打印unsigned int,你需要寫'printf(「%u \ n」,b);' – UnholySheep 2014-10-18 15:00:00

回答

3

您必須使用正確的格式說明符才能使用函數printf獲取正確的結果。寫

printf("%d\n", a); 
    printf("%u\n", b); 

函數根據格式說明符簡單解釋數據的內部表示。

unsigned int類型
1

使用格式spcifier這是%u

現在編譯並運行代碼,你會看到

#include <stdio.h> 

    int main(void) { 
     signed int a = 5; 
     unsigned int b = -5; 

     printf("%d\n", a); 
     printf("%u\n", b); 

     return 0; 
    }