unsigned char与signed char详解

unsigned char

无符号数
unsigned char 的范围:0-255
unsigned char与signed char详解_第1张图片

signed char

无符号数
signed char 的范围:-128-127
unsigned char与signed char详解_第2张图片
对于有符号数:最高位代表符号位: 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)不理解的同学可以看 原码、反码、补码 这里我们虽然写的是补码,但是最终是以原码的形式表示的。
用是实际的题目来理解:
unsigned char与signed char详解_第3张图片
我们可以看到最终的结果是 255
当我们定义为 有符号数时,那a的范围就变成了-128-127
unsigned char与signed char详解_第4张图片
而strlen函数我们在 strlen 中讲过了,当遇到0时就停止了(0的ASCII码对应 ‘\0’),因此最终的结果为255。

你可能感兴趣的:(C语言学习,c语言)