unsigned char
无符号数
unsigned char 的范围:0-255
signed char
有符号数
signed char 的范围:-128-127
对于有符号数:最高位代表符号位: 0代表正数 1代表负数
而char类型的大小 一共 00000000-11111111 二的八次方种情况
从00000000(0)–>01111111(127)–>10000000(-128)–>10000001(-127)–>11111110(-2)–>11111111(-1)–>00000000(0)
因此 signed char的范围就是 -128-127
这里对10000000(-128)不理解的同学可以看 原码、反码、补码 这里我们虽然写的是补码,但是最终是以原码的形式表示的。
用是实际的题目来理解:
我们可以看到最终的结果是 255
当我们定义为 有符号数时,那a的范围就变成了-128-127
而strlen函数我们在 strlen 中讲过了,当遇到0时就停止了(0的ASCII码对应 ‘\0’),因此最终的结果为255。