C语言char类型范围详解:有符号与无符号
在 C 语言中,'char' 是一种基本数据类型,用于表示字符或小整数。通常,'char' 类型占用 1 个字节(8 位),可以存储 256 种不同的值。
'char' 类型可以是有符号的或无符号的,具体取决于编译器和平台的定义。
有符号 'char' 类型
在有符号 'char' 类型中,最高位表示符号位,'0' 表示正数,'1' 表示负数。因此,8 位二进制数的最高位是符号位,剩下的 7 位表示数值,可以表示 128 个不同的数。其中,最小的数是 '10000000' (-128),最大的数是 '01111111' (127)。因此,有符号 'char' 类型的范围是 -128 到 127。
为什么有符号的 'char' 类型是 -128~127
这是因为采用的是补码表示法,最高位是符号位,'0' 表示正数,'1' 表示负数。
无符号 'char' 类型
在无符号 'char' 类型中,所有的位都表示数值,没有符号位。因此,8 位二进制数可以表示 256 个不同的数,从 '00000000' (0) 到 '11111111' (255)。因此,无符号 'char' 类型的范围是 0 到 255。
为什么不是 (11111111) - 255
这是因为无符号类型没有符号位,所以 '11111111' 表示的是最大值 255,而不是负数。
需要注意的是,'char' 类型在不同的编译器和平台上可能会有不同的大小和范围。例如,一些嵌入式系统可能定义 'char' 类型为 16 位,而不是 8 位。因此,在编写跨平台代码时,应该避免依赖于 'char' 类型的具体实现。
原文地址: https://www.cveoy.top/t/topic/jJqG 著作权归作者所有。请勿转载和采集!