unsigned char,uchar ,UCHAR,这几个都是表示的无符号的char,其实都是unsigned char的宏定义,所以就是一个东西。
char占一个字节,能表示 -128 到127
1,计算机里面所有的数都是用补码表示的,正数的补码是其本身,负数的补码是原码的反码(符号为以外,其余的全部求反)加一。
2,数字在计算机中是以二进制来存储的,最高位是符号位,0为正1为负
3,表示正数时:0~127 0000 0000 ~ 0111 1111
表示负数时: 1111 1111 ~ 1000 0000 表示的是 -127 ~ -0
此时的补码是 1000 0001 ~ 0000 0000 ,截断后变为0000 0000,这与+0所表示的数是一样的,为了不能浪费1000 0000这个数值,我们规定用1000 0000这个位来表示-128。
所以char表示的范围是-128 ~ 127.