為什么tmp = *src >> 4 if (tmp <= 9) 能取高四位,取出來tmp的值是什么
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++;
}
*str = '\0'; //添加字符串結束符
}
|