0
我試圖將一個整數保存爲一個字符。將int保存爲char?
char i = 80;
printf("0x%x", i);
上述代碼顯示0x50(1字節)。但是,如果該值高於128,則會打印一個4字節的值。
char i = 130;
printf("0x%x", i); // this prints 0xffffff82
如何可以存儲整數值作爲只是1個字節,如果該值大於128(印刷只是82,而不是在第二個例子ffffff82)更大?
使用'unsigned char i = 130;' – Marian
'%x'格式說明符將打印一個十六進制值。我相信'i'正在被提升,所以你正在打印一個整數,而不是一個8位八位字節。這就是爲什麼你看到'0xffffff82'。你也必須擔心'int' - >'char'截斷(在一般情況下)。 – jww