- /* 將一段內存數據轉換為十六進制格式的字符串,
- str-字符串指針, src-源數據地址, len-數據長度 */
- void MemToStr(unsigned char *str, unsigned char *src, unsigned char len)
- {
- unsigned char tmp;
- while (len--)
- {
- tmp = *src >> 4; //先取高 4 位
- if (tmp <= 9) //轉換為 0-9 或 A-F
- *str++ = tmp + '0';
- else
- *str++ = tmp - 10 + 'A';
- tmp = *src & 0x0F; //再取低 4 位
- if (tmp <= 9) //轉換為 0-9 或 A-F
- *str++ = tmp + '0';
- else
- *str++ = tmp - 10 + 'A';
- *str++ = ' '; //轉換完一個字節添加一個空格
- src++;
- }
- }
復制代碼 這是書上的一段代碼,目的是為了類型轉換為ascii后給1602用,現在比較疑惑的是,轉ascii,為什么要分高四位和低四位啊?
|