1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > C 强制类型转换 char转int的小陷阱

C 强制类型转换 char转int的小陷阱

时间:2020-11-13 05:15:52

相关推荐

C 强制类型转换 char转int的小陷阱

今天遇到一个小陷阱。

本来想看一个字符转成整型之后对应的值,结果竟意外的发现,转成的整型大于256。我:????字符不是只有一个字节么?

我把这个字符的前后字符都置0,结果还是一样。我就懵逼了。一查才知道,和signed char转成int的“潜规则”有关。

原来,对于signed char,将其转化为int时,最高位为符号位,那么扩展时,就会对符号位进行扩展,即将整型比字符多出来的位全部设置成与符号位相同。比如0x80,变成int就会变成0xffffff80;而0x70就会变成0x00000070。

而unsigned char就不会进行扩展,因此想表示byte的时候,最好使用unsigned char。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。