C语言中字符变量数值取值范围。

C语言中有符号型字符变量的取值范围为什么是-128到127呢?应该是-127到127呀!符号位除外,最大的也就127最小的是-127,怎么是-128呢?

  在C语言中一般char类型占1个字节,即8个二进制bit位,每1位有0或者1两种值,使用乘法原理,排列组合数为2^8 = 256种排列数。

  如果是无符号char类型,即unsigned char类型,可以表示【0,255】共256个无符号数。
  如果是有符号char类型,即signed char或者char类型,可以表示【-128,127】,共256个有符号数。

  说明:在表示有符号整数时,现在计算机一般使用原码、反码、补码三种编码方式。原码的表示,最高位表示符号位,0表示正数,1表示负数。所以有符号char类型的最大值的二进制位表示如下:
  0 111 1111 //最高位是符号位即为127
  最小值的二进制位表示如下:
  1 000 0000 //负数是绝对值越大,其值越小。即为-128
温馨提示:答案为网友推荐,仅供参考
相似回答