c强制类型转换语句_C中的char占用几位有符号吗[通俗易懂]

(4) 2024-05-24 20:12

Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说c强制类型转换语句_C中的char占用几位有符号吗[通俗易懂],希望能够帮助你!!!。

今天遇到一个小陷阱。
本来想看一个字符转成整型之后对应的值,结果竟意外的发现,转成的整型大于256。我:????字符不是只有一个字节么?
我把这个字符的前后字符都置0,结果还是一样。我就懵逼了。一查才知道,和signed char转成int的“潜规则”有关。
原来,对于signed char,将其转化为int时,最高位为符号位,那么扩展时,就会对符号位进行扩展,即将整型比字符多出来的位全部设置成与符号位相同。比如0x80,变成int就会变成0xffffff80;而0x70就会变成0x00000070。
而unsigned char就不会进行扩展,因此想表示byte的时候,最好使用unsigned char。

今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

上一篇

已是最后文章

下一篇

已是最新文章

发表回复