黑马程序员技术交流社区

标题: 字符是有符号还是无符号整数? [打印本页]

作者: 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