-1
如果我有這個unsigned long x
(4字節),我怎樣才能將x
的每個字節轉換爲其十六進制數並將所有字節存儲在數組中: unsigned char[4]
?將無符號長整數的每個字節轉換爲無符號字符數組的元素
UPDATE
基於然後sugestions我,我曾嘗試這兩種解決方案:
溶液1:
unsigned char hex_str[9];
snprintf(hex_str, sizeof(hex_str), "%lX", target_hexstr);
printf("hex_str: %s\n", hex_str);
printf("size: %lu\n", sizeof(hex_str));
for(int x=0; x<sizeof(hex_str); x++)
printf("%x\n", hex_str[x]);
在這種情況下
,hex_str
顯示器1400
和9「單位「:31,34,30,30,0,0,0,0,24.
解決方案2:
hexstr[0] = (x & 0xFF000000) >> 24;
printf("%x\n", x[0]);
hexstr[1] = (hexstr & 0x00FF0000) >> 16;
printf("%x\n", x[1]);
hexstr[2] = (hexstr & 0x0000FF00) >> 8;
printf("%x\n", x[2]);
hexstr[3] = (hexstr & 0x000000FF);
printf("%x\n", x[3]);
printf("hex_str: %s\n", hex_str);
在這種情況下,顯示hex_str
沒什麼和4 「單位」:0,0,14,0
爲什麼這2種溶液具有型動物的結果?
你可以告訴他指數有什麼區別嗎?例如,在這篇文章中:https://stackoverflow.com/a/30840656/2692962,我認爲這個命令與你的相反。 –
它的語法完全一樣,語法不同。 –
請不要在沒有顯示任何嘗試的地方提供代碼。 –