顯示十六進製制字元陣列

2022-03-16 06:57:43 字數 549 閱讀 2553

1.  將一串十六進製制數值,儲存到字元陣列中,然後以16進製制顯示。

unsigned char buf[5] ="\x8b\x22\x11\x12"; //結尾\0

cstring str;

for(int i=0;i<4;i++)

afxmessagebox(str);

輸出的結果為:8b 22 11 12

2.  如果第一句,改為

char buf[5] ="\x8b\x22\x11\x12"; //結尾\0

輸出結果為ffffff8b 22 11 12

分析:因為乙個char變數能儲存的陣列範圍是:-128到127,而8b是十進位制的139,超出乙個char能儲存的範圍。

當使用

s.format("%x ",buf[0]);

時,會首先轉化成整型-117,然後顯示-117的十六進製制。於是就出現了ffffff8b的情況。

十六進製制除錯顯示資料

在嵌入式開發中,不管是驅動除錯還是應用協議開發,經常需要十六進製制列印資料,供除錯使用。以下是c實現的乙個十六進製制輸出的函式,感覺挺實用的,供參考 define bin2char ch ch ch ch void dumphex unsigned char buf,int len unsigned...

八進位制字元與十六進製制字元

在c中有兩種特殊的字元,八進位制轉義字元和十六進製制轉義字元,八進位制字元的一般形式是 ddd d是0 9的數字。十六進製制字元的一般形式是 xhh h是0 9或a f內的乙個。八進位制字元和十六進製制字元表示的是字元的ascii碼對應的數值。比如 063 表示的是字元 3 因為 3 的ascii碼...

十六進製制字元轉long

工程所需,從字元陣列中取對應位元組數,拼接為int 或者 long 8位元組 型返回。超出8位元組整型不考慮 拼接位元組轉化為long64 param1 陣列位址 param2 起始位元組下標 param3 結束位元組下標 return 拼接值 unsigned int64 hex2long byt...