这个C语言程序的值是怎么得到的

ccbbcc 2025-06-02 13:27:10

代码;

#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是怎么得到的?谢谢

...全文
379 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复

不写代码了主要关键点:

img

str[2]=hex[6];
str[3]=hex[4];
最后输出:0X64

forever74 06-04
  • 打赏
  • 举报
回复

char hex[17]="0123456789ABCDEF";
...
str[2]=hex[value>>4];
str[3]=hex[value&0xf];

有没有感觉好一点?

ccbbcc 06-04
  • 举报
回复
@forever74 是的
ccbbcc 06-02
  • 打赏
  • 举报
回复

谢谢
str[2]="0123456789ABCDEF"[value>>4];
str[3]="0123456789ABCDEF"[value&0xf];

我对这两句不是很理解

@ccbbcc 字符数组取索引处的字符啊
  • 打赏
  • 举报
回复

就是把一个字节值转成HEX串,因为一个字节范围0255,hex值就是00FF,对高低4位分别查表就得出来了

70,017

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧