70,017
社区成员




代码;
#include<stdio.h>
void Value2String(unsigned char value,char *str)
{
str[0]='0';str[1]='X';str[4]='0';
str[2]="0123456789ABCDEF"[value>>4];
str[3]="0123456789ABCDEF"[value&0xf];
}
int main(void)
{
char str[5];
char i;
Value2String(100,str);
for(i=0;i<4;i++)
printf("%c",str[i]);
return 0;
}
运行效果图
我不明白这段代码,0x64是怎么得到的?谢谢
不写代码了主要关键点:
str[2]=hex[6];
str[3]=hex[4];
最后输出:0X64
char hex[17]="0123456789ABCDEF";
...
str[2]=hex[value>>4];
str[3]=hex[value&0xf];
有没有感觉好一点?
谢谢
str[2]="0123456789ABCDEF"[value>>4];
str[3]="0123456789ABCDEF"[value&0xf];
我对这两句不是很理解
就是把一个字节值转成HEX串,因为一个字节范围0255,hex值就是00FF,对高低4位分别查表就得出来了