这个33是怎么得来的。求讲解。。。在线等。 由于金币用完了没法给大神悬赏 所以委屈一下。下次加倍归还悬赏。谢谢
把289转成二进制,再截断,然后转成十进制,应该就是了。
这段代码运行结果是个 " ! ", " ! " 的ASCII码值为 33,具体为什么,同求解!
建议上机调试,看看内存就一目了然,宽字节赋值给窄字节是将宽字节的低位拿出来赋值的。而short在32位机上又是2字节,所以289化为二进制为
0000 0001 0010 0001 对应在内存里面的数字为(小端存储并且以字节为单位并且16进制表示) 21 01,赋值的时候就是将低位也就是16进制的21
赋给了a,因为a只占8位,则a的值就是16进制的21,化为10进制则为33...
289转化成二进制为100100001,short int是两个字节,存储为00000001 00100001
unsigned char为一个字节,取00100001,值为33
楼上两位好专业,学习了,赞
256 + 33 = 289
超过了256 符号位(最前面的位)变成了 1 后面是 33
unsign char 从 0 开始 最前面的位 也就是 1 舍去变成 0
后面依然是33
其实还是得二进制。。。。。