C语言中,八进制、十进制、十六进制可以自动转换,注意格式即可。
十进制的12对应的十六进制数是0xc
因此将十进制数12按十六进制数输出语句为printf("0x%x",12);
程序:
#include
void main(){
printf("0x%x",12);
}
//运行结果截图:
#include
#include
int main(int argc, char *argv)
{
int a = 12, b = 0;
char str[8] = {0};
//先把数字12转成十六进制的字符串
sprintf(str, "0x%d", a);
//再把十六进制的字符串提取出该十六进制对应的数字
sscanf(str, "%x", &b);
//打印提取出的数字
printf("十六进制:%#x 对应的十进制:%d\n", b, b);
return 0;
}
只是打印输出,直接printf("%x",12)。
u8 D_data = 12; //十进制数
u8 H_data = 0; //存放转换成的十六进制数
H_data = (D_data/10)*16 + D_data%10;