首页 > 编程知识 正文

c语言,c语言中按位取反什么意思

时间:2023-05-06 18:11:59 阅读:39470 作者:4655

#包含

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;

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。