-2
#include <stdio.h>
int main()
{
int x = 255;
char hex[4] = {0};
hex[0] = 0x02;
hex[1] = 0x20;
hex[2] = 0xef;
hex[3] = x;
for(int i = 0; i < 4; i++)
printf("%X ", hex[i]);
}
這輸出「2 20 FFFFFFEFFFFFFFF」。應該改變什麼才能輸出「02 20 EF FF」?如何在一個字節上將十進制數保存爲十六進制數?
它的工作,謝謝。將char更改爲unsigned char也起作用。 –
'char'的簽名是實現定義的。 '((un)signed)char'只有一個最小保證範圍。不能保證範圍是'-128..127'。 – Olaf
如果數字始終小於或等於255,則使用'unsigned char'而不是int來表示x和十六進制。 – Sander