【博客45】char转换为int时的符号位扩展问题
内容: 记录下char型转换为int型时,符号位扩展的问题
先看下例码:
此时我们希望得到的结果是正数,因为80是一个正数,char扩展为int后,应该结果是80.
结果:
分析:此时跟我们想象的不一样,因为char像int扩展时,还有一个要考虑的就是符号位问题。
0x80的二进制表示为:10000000,那么最高位为1,此时扩展为int后,扩展出来的位会按照char类型的符号位来进行扩展,会变成:111…1 10000000.
验证一下:
结果:
大三学生一枚,文章均非抄袭或者模仿,均为原创,仅代表个人观点,如果文章有错误的地方,欢迎在下方提出,每条评论我都会去认真看并回复,同时感谢指正的前辈。