1、符号字符型,范围为 -128 到127;(十六进制范围:0x80---0x7f,补码排除第1位的1和0,剩下的位是递增的。)
char ch = -1; //-1未越限
计算机存储的是补码:1111 1111 即0xff;
2、无符号字符型,范围为 0 到255;(十六进制范围:0x00---0xff)
unsigned char str = -1; //-1越限
计算机存储的是补码:1111 1111 即0xff; 但是最终显示输出的是255;
(可以理解成:unsigned char str = 0; str = str -1;)
总结:无论是有符号的还是无符号的整型,对于同一个数,其计算机存储的值(二进制/十六进制数)都是相同的,但是转换成十进制数后值是不同的。