c语言中的 unsigned char

unsigned char是无符号字节型,char类型变量的大小通常为1个字节(1字节=8个位),且属于整型。整型的每一种都有无符号(unsigned)和有符号(signed)两种类型(float和double总是带符号的),在默认情况下声明的整型变量都是有符号的类型(char有点特别),如果需声明无符号类型的话就需要在类型前加上unsigned。无符号版本和有符号版本的区别就是无符号类型能保存2倍于有符号类型的数据,比如16位系统中一个int能存储的数据的范围为-32768~32767,而unsigned能存储的数据范围则是0~65535。

同样,在32位系统中一个char类型一般为8个bit,所以能存储的数据范围为-128~127,而unsigned char则是0~255,字符型所存储的数据是用来表示字符的,例如ASCⅡ或Unicode。

关于char的符号(选自thinking in C++ 2nd vol1):
signed is the default and is only necessary with char; char may or may not default to signed. By specifying signed char, you force the sign bit to be used.

译:有符号类型是默认(指的是对于其他整型来说)的类型并且仅对于char来说才是必须的。char有可能是signed也有可能是unsigned(我想这可能取决于编译器或具体实现)。但通过显式地指定一个char为signed,你就迫使其成为有符号的字符型

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/learngis/archive/2009/06/05/4243953.aspx

大部分转载 小部分自写
原文地址:https://www.cnblogs.com/8586/p/1684258.html