永发信息网

VC中16进制显示问题

答案:1  悬赏:30  手机版
解决时间 2021-04-13 13:41
VC中16进制显示问题
最佳答案
Fins_resp[i]接受到的数据,可以直接显示。通过格式化函数,如scanf("%x",Fins_resp[i])就可以,但相比转换为字符串,则没法一起显示“一串”,只能一个一个来。
if (temp>=0xffffff00);temp=temp-0xffffff00;
确实是一个很绕混人的语句,因为这里使用了有符号数据类型。其结果,是将负数的char(实际上是大于127的字符,转换为128~255之间的正整数。
这里,如果使用的是unsined char和unsigned int,那么这个语句是没有必要的。
temp>=0xffffff00 难点在这里,一个有符号int和0xffffff00比较时,因为后者的首位是1,其实是一个负数(-256),造成的结果是,如果temp是正数,那么是无符号比较(必然后者大),如果temp是负数,必须作为有符号进行比较(必然-256比最小的char小,前者大),这样就是,if(temp<0) temp += 256;一个效果,在int类型中,将负数char变成了unsigned char。

追问非常感谢高手的指点,我还有几处不是很清楚,请高手继续指点一下,谢谢!
Fins_resp[i]接受到的数据通过VC查看器查看出来的是乱码,通过scanf("%x",Fins_resp[i])只是把乱码转变成了字符串?我想知道这些乱码是什么意思?


追答前面笔误,应该是printf而不是scanf。
你查看到乱码,是因为这个char的值对应的ascii码是不可打印字符。默认char的显示和输出,是输出其对应的ASCII字符,比如char的数值是65,那么输出显示会显示字母'A',这是有其数据类型char决定的。因此如果要输出其数值,要么转换为其它数值类型,要么用printf之类的格式化输出方式,指定输出格式(其实itoa也是一种格式化,只是格式化到了一个字符串里面)。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
怎样分别爱与喜欢的含义?
天河客运站如何坐车去太和镇?
殷红的殷什么意思,殷红 中的 殷咋读 意思是啥
抛出橄榄枝,下一句如何写好
?如图是尿的形成过程示意图:(1)尿的形成包
祁门县祁鑫制衣厂在什么地方啊,我要过去处理
求DNF广六.40到50级各职业套装单件价格.25到5
爱国作文结尾名言,一首古诗以 说行人 结尾
谁有游戏人生的内测资格?可以发个邀请给我不
外太空有没有地球人?
教师资格证面试时抽到的题是什么样的?会给打
我和何冬青有可能成为夫妻吗?
上海财经大学收不收江苏文科生?
怎样洞穿一个人?
qq飞车里有什么the veronicas的歌
推荐资讯
清源宾馆地址有知道的么?有点事想过去
新华书店网上书店怎么取消定的书?它添订的书
做逻辑回归时,将p小于多少的代入
dnf逐风套哪里刷的到
i450刷机,老是死机,什么情况?
停车位不停爱心车位就可以赚钱是么?
下列数据中最接近实际的是A.妈妈在菜市场买了
上海公交卡使用规则?
我家电脑不能玩单击的游戏 像合金弹头 怎么办
QQSG中找到了天下第一**人怎么才能获得上品强
求一篇英语演讲稿(2分钟左右)
索爱JalouF100在上海哪里有卖
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?