所以我只是在C上做些修改,並想知道是否可以將一個二進制值賦給一個整數,並使用printf()函數輸出一個有符號或無符號的值。但是,無論我得到的輸出是否相同,我都認爲打印簽名的價值與未簽名的價值相比要低一半。我使用Code :: blocks和GCC。打印此int時爲什麼會得到相同的值?
是否printf()忽略了%i &%u並使用變量定義?
示例代碼:
#include <stdio.h>
#include <stdlib.h>
int main()
{
signed int iNumber = 0b1111111111111111;
printf("Signed Int : %i\n", iNumber);
printf("Unsigned Int : %u\n", iNumber);
return 0;
}
同樣的結果,如果我改變INT無符號:
#include <stdio.h>
#include <stdlib.h>
int main()
{
unsigned int iNumber = 0b1111111111111111;
printf("Signed Int : %i\n", iNumber);
printf("Unsigned Int : %u\n", iNumber);
return 0;
}
你確定你的int類型只有16位寬嗎? – 2010-10-22 20:36:05
什麼是'charCount'? – Donotalo 2010-10-22 20:36:36
請注意,像'0b1111'這樣的二進制常量語法不是ISO標準C. – 2010-10-22 21:22:54