C语言y丨~(x&y)是什么意思?

如题所述

将变量x和y(必须都是整型)进行"按位与"(&操作符的功能),将结果"按位取反"(~操作符的功能),再将结果和y进行"按位或"(|操作符的功能),最后得到整个表达式y|~(x&y)的结果。如:

//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
int main(void){
    char x=10,y=20,z=y|~(x&y);
    printf("%d\n",z);
    return 0;
}

 输出是-1。过程是这样的:

x&y=00001010&00010100=00000000(两个数的二进制对应位都是1时这位才得1否则是0);

~(x&y)=~00000000=11111111;

y|~(x&y)=000010100 | 11111111=11111111(两个数的二进制对应位只要有1个1这位就得1)。

二进制11111111就是十进制-1的补码——这里以8位二进制举例。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-04-18
| 这个表示位或
~ 这个表示位取反
& 这个表示位与
例:2的二进制10, 1的二进制01
2 | 1 = 3(二进制的11,位或有1为1)
2 & 1 = 0(二进制的00,位与有0为0)
~2 = 1(二进制01, 1变为0,0变为1)本回答被网友采纳
第2个回答  2015-04-18
你这条语句不符号c语言的语法
||这个在c语言中表示 或
&&这个表示 且
相似回答