- #include
-
- int main()
- {
-
- char a=-1;
- //10000000000000000000000000000001原码
- //11111111111111111111111111111110反码
- //11111111111111111111111111111111补码
- //char字符需要8个bit位:11111111
- //char字符打印为整型需要整型提升,看最高位是什么有符号补1,无符号补0
- //11111111111111111111111111111111所以补码如此
- //10000000000000000000000000000001打印原码出来是-1
- signed char b=-1;
- //这个也是有符号的,和上面一样
- unsigned char c=-1;
- //无符号的,所以8个bit位:11111111
- //无符号补0
- //00000000000000000000000011111111得到的是整型提升出来的补码
- //无符号原反补相同,打印如此
- printf("a=%d,b=%d,c=%d\n",a,b,c);
-
- return 0;
- }
一个有关char和整型提升的小题