#包含
int main () )。
unsigned char te1、te2、te3;
te1=0xff;
te2=0x00; //te2二进制: 00000000
if(te3==(~te1 ) ) {
te3=1;
}
else{
te3=2;
}
printf('%d ',te3 ); //输出: 2
printf((%u ),() char ) ) ) te1 ); //无符号char输出为: 0
//无符号char输出分析:
//te 1336000000000000000000000000000000000000000000111
//te 1336011111111111111111111111111111111111111110000
//~由于强制转换te1char :0000000,所以输出为0
printf('%u )、(~te1 ); //无符号输出为4294967040
//无符号输出分析:
//te 1336000000000000000000000000000000000000000000111
//te 1336011111111111111111111111111111111111111110000
//~te1=二进制111111111111111111100000=4294967040
printf('%d )、(~te1 ); //有符号int输出为:-256
//有符号输出分析:
//te 1336000000000000000000000000000000000000000000111
//te 1336011111111111111111111111111111111111111110000
~te1的开头为1是负的补数输出
//~ te1=1000000000000000000000000000000111=-256
if(-256==(~te1 ) ) {
te3=1;
}
else{
te3=2;
}
printf('%d ',te3 ); //输出: 1
//说明在条件语句中,(te1 )是带符号输出进行比较的。
返回0;
}