用C语言如何实现将16进制数0x2B分成字符'2'和'B'?
答案:3 悬赏:20 手机版
解决时间 2021-03-25 08:38
- 提问者网友:心如荒岛囚我终老
- 2021-03-24 14:58
用C语言如何实现将16进制数0x2B分成字符'2'和'B'?
最佳答案
- 五星知识达人网友:孤独的牧羊人
- 2021-03-24 15:33
可以用 sprintf()
int main(void)
{
unsigned char aaa = 0x2B;
unsigned char bbb[2];
sprintf((char*)bbb, "%x", aaa);
printf("%c,%c\n", bbb[0], bbb[1]);
return 0;
}
int main(void)
{
unsigned char aaa = 0x2B;
unsigned char bbb[2];
sprintf((char*)bbb, "%x", aaa);
printf("%c,%c\n", bbb[0], bbb[1]);
return 0;
}
全部回答
- 1楼网友:雾月
- 2021-03-24 17:01
可以转换成byte数组
- 2楼网友:罪歌
- 2021-03-24 15:43
最简单的方法是用位运算 :
{
bbb[0]=aaa&0x0f;
if(bbb[0] > 9) { bbb[0] += 97-10; }
else { bbb[0] += 48; }
bbb[1]=aaa>>4;
if(bbb[1] > 9) { bbb[1] += 97-10; }
else { bbb[1] += 48; }
}
{
bbb[0]=aaa&0x0f;
if(bbb[0] > 9) { bbb[0] += 97-10; }
else { bbb[0] += 48; }
bbb[1]=aaa>>4;
if(bbb[1] > 9) { bbb[1] += 97-10; }
else { bbb[1] += 48; }
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯