char 有 8 位,最高位是符号位
当最高位是 0,其余位都是 1 时,按照补码表示法的规则,这个数应该是 正数了,则最大值为0111 1111,为127;
当最高位是 1,其余位都是 0 时,按照补码表示法的规则,这个数应该是 负数了,用求负数的二进制的方法反推回去:
二进制: 1000 0000
减一: 0111 1111
逐位取反: 1000 0000 //和原来的二进制形式一样,对应正整数 128
经过这一系列操作之后,二进制形式依然是 1000 0000,对应 数值 128,但这个数是负数,因为反推前 最高位是 1 的,故对应 -128。