黑马程序员技术交流社区
标题:
字符是有符号还是无符号整数?
[打印本页]
作者:
yanggangcl
时间:
2015-11-3 19:03
标题:
字符是有符号还是无符号整数?
现代大多数计算机都支持8位字符,所以大多数C语言编译器都把字符实现为8为整数。但是,这并不意味着所有的编译器都使用这个方法。
当需要把一个字符转换为一个较大的整数时,问题就来了:将字符作为有符号数呢?还是作为无符号数呢?
如果作为有符号数,要将char类型的数扩展到int类型时,同时还得复制符号位,而如果是作为无符号数,则只需要在多余的位上补0。而且前者意味着一个8为字符的取值范围是-128~127,而后者的范围则是0~255,所以会反过来影响到哈希表的设计方式。
解决方法是:将字符声明为无符号字符(unsigned char),这样转换使只需要在多余的位补0。否则,在某些编译器上可能会作为有符号数处理,而另一些处理器上又会作为无符号数处理。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2