c++ int转换成char

c++ int转换成char,第1张

写的代码好高深啊,

unsigned char i=(unsigned char)a这一句是吧a变量当成是unsigned char 类型(长度为一个字节,就是8位,能表示范围从0-255(0x00-0xff)),而在printf把它打印的是用的是%08x,应该是按十六进制输出,当成一个int类型的数,而i只有一个字节长度,所以用符号位(0)填。至于08记不太清了。

char *b=(char*)&a这一句是取a的地址然后解引用为指向char类型的指针,但其实内存内在没有发生任何变化,所以当使用prinf把它输出,应该%x最后还是会把*b内容当成int*因为你没用%c这一个转换(不确定是这么叫么)。

还有最后一点,很重要的,您的程序在不同的 *** 作系统底下编译出来应该也会不一样,例如windows *** 作系统是大尾的系统,它会把数据的高字节放在连续储存区域的首位,而Linux这样的系统却是小尾系统,做的事情刚好想法,所以你的程序在不同系统中编译出来结果还会不一样。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7145674.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-02
下一篇 2023-04-02

发表评论

登录后才能评论

评论列表(0条)

保存