'\376'为例
①程序将变量定义为unsigned char 型将字符放到低8位中,高八位补零;00 00 00 00 11 11 11 10
②程序将变量定义为signed char型将字符放到低8位中,因为最高位为1,所以高八位补1 ;11 11 11 11 11 11 11 10
输出均为-2
第②个为-2补码,但为什么第一个也输出-2呢?
#include
void main()
{
unsigned int c;
c='\376';
printf("%d\n",c);
}
清华大学出版社 谭浩强主编 《C程序设计》第60页