- /* 将一段内存数据转换为十六进制格式的字符串,
- 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,为什么要分高四位和低四位啊?
|