1. 將一串十六進製制數值,儲存到字元陣列中,然後以16進製制顯示。
unsigned char buf[5] ="\x8b\x22\x11\x12"; //結尾\0cstring str;
for(int i=0;i<4;i++)
afxmessagebox(str);
輸出的結果為:8b 22 11 12
2. 如果第一句,改為
輸出結果為ffffff8b 22 11 12char buf[5] ="\x8b\x22\x11\x12"; //結尾\0
分析:因為乙個char變數能儲存的陣列範圍是:-128到127,而8b是十進位制的139,超出乙個char能儲存的範圍。
當使用
時,會首先轉化成整型-117,然後顯示-117的十六進製制。於是就出現了ffffff8b的情況。s.format("%x ",buf[0]);
十六進製制除錯顯示資料
在嵌入式開發中,不管是驅動除錯還是應用協議開發,經常需要十六進製制列印資料,供除錯使用。以下是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...