谢谢各位关注,我在做一个单片机上的console程序,单片机通过串口和上位机通讯,指令和返回数据全部采用ASCII码,由于需要反馈一些寄存器数据——这些数据是16进制的,通过串口输出时我想把它们变成ASCII码方便阅读。
例如,十六进制0x4A,转换为ASCII字符 ‘4’和‘A’,而不是得到这个十六进制对应的ASCII,比如0x4A='J'
请各位提供一点思路或者C代码,尽可能考虑资源占用较小的方式。
如何把16进制数转换为对应的ASCII字符?
答案:2 悬赏:50
解决时间 2021-02-22 05:19
- 提问者网友:美人如花
- 2021-02-21 11:53
最佳答案
- 二级知识专家网友:高冷不撩人
- 2021-02-21 12:32
int main(int argc, char* argv[]) { char xNo=0x60; printf("转换的结果: %c!\n", xNo+0x10); return 0; }
全部回答
- 1楼网友:浪女动了心
- 2021-02-21 14:10
在chrome里,字符串有个charcodeat()方法
例如"a".charcodeat()为97,如果是"ba".charcodeat()为98,默认第一位,即index为0;
"ba".charcodeat(0)=98,而"ba".charcodeat(1)为97
10进制转16进制: 如17的16进制 (17).tostring(16) = "11"
合起来就是("a".charcodeat()).tostring(16) = "61"
嫌麻烦可以封装一个函数实现。
数字变字符: string.fromcharcode(98) = "b"
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯