【博客45】char转换为int时的符号位扩展问题

内容: 记录下char型转换为int型时,符号位扩展的问题

先看下例码:
【博客45】char转换为int时的符号位扩展问题
此时我们希望得到的结果是正数,因为80是一个正数,char扩展为int后,应该结果是80.

结果:
【博客45】char转换为int时的符号位扩展问题
分析:此时跟我们想象的不一样,因为char像int扩展时,还有一个要考虑的就是符号位问题。
0x80的二进制表示为:10000000,那么最高位为1,此时扩展为int后,扩展出来的位会按照char类型的符号位来进行扩展,会变成:111…1 10000000.

验证一下:
【博客45】char转换为int时的符号位扩展问题
结果:
【博客45】char转换为int时的符号位扩展问题

大三学生一枚,文章均非抄袭或者模仿,均为原创,仅代表个人观点,如果文章有错误的地方,欢迎在下方提出,每条评论我都会去认真看并回复,同时感谢指正的前辈。