C语言问题,按位与、按位或、按位异或、按位取反,解释下。

分别解释下。浅显易懂即可。

第1个回答  推荐于2017-11-25
先说一下布尔值的与、或、异或、反运算:
与运算,两者都为真计算结果为真,反之为假:
1 & 1 = 1,1 & 0 = 0,0 & 1 = 0,0 & 0 = 0;
或运算,至少其一都为真计算结果为真,反之为假:
1 | 1 = 1,1 | 0 = 1,0 | 1 = 1,0 | 0 = 0;
异或运算,两者不同为真,反之为假:
1 ^ 1 = 0,1 ^ 0 = 1,0 ^ 1 = 1,0 ^ 0 = 0;
取反运算,单目运算符:
~1 = 0,~0 = 1;
以上例子 1 代表真,0 代表假。

按位运算就是将二进制位的每一位进行如上计算。
如 2 | 5,转换为二进制(以 1 字节 8 位为例):
00000010 | 00000101,每个二进制位分别进行或运算后得:
00000111 即 7。虽然 7 = 5 + 2 但不代表 2 | 5 = 2 + 5。
如:2 | 6 = 6,5 | 6 = 7,2 | 4 | 5 | 6 | 7 = 7。
同理,按位与运算 2 & 5 的结果为 0:
00000010 & 00000101 = 00000000
按位与运算 2 & 6 的结果为 2(二进制 00000010):
00000010 & 00000110 = 00000010。
同样也能算出 2 ^ 6 的结果为 4(二进制 00000101):
00000010 ^ 00000110 = 00000100。
取反运算 ~00000110 = 11111001。
当然,对一个数字进行取反运算结果是多少,还与该类型是有符号还是无符号,占用的字节大小等有关。上面的例子只是以一个字节为例进行说明。本回答被提问者采纳
第2个回答  2017-12-21
1 | 1 = 0吧

C语言问题,按位与、按位或、按位异或、按位取反,解释下。
1 & 1 = 1,1 & 0 = 0,0 & 1 = 0,0 & 0 = 0;或运算,至少其一都为真计算结果为真,反之为假:1 | 1 = 1,1 | 0 = 1,0 | 1 = 1,0 | 0 = 0;异或运算,两者不同为真,反之为假:1 ^ 1 = 0,1 ^ 0 = 1,0 ^ 1 = 1,0 ^ 0 = 0;取反运算,单目...

按位与、按位异或、按位取反各是什么意思?C++
就是先把数都转换为2进制按题目要求运算1为真0为假与就是两数相与全是真的时候结果为真其他全为假,取反就是去相反的意思呀,真是为假、假时为真,异或就是两个个数比较真异或假时为真,假异或真时为真,真异或真时为假,假异或假时为假。就是相同为假,相反为真。

按位与、按位异或、按位取反各是什么意思?C++
就是先把数都转换为2进制按题目要求运算1为真0为假与就是两数相与全是真的时候结果为真其他全为假,取反就是去相反的意思呀,真是为假、假时为真,异或就是两个个数比较真异或假时为真,假异或真时为真,真异或真时为假,假异或假时为假。就是相同为假,相反为真。

C语言的按位与,或,非,异或都什么意思.有什么用
位运算符有:&(按位与)、|(按位或)、^(按位异或)、~ (按位取反)。优先级从高到低,依次为~、&、^、| 按位与运算有两种典型用法,一是取一个位串信息的某几位,如以下代码截取x的最低7位:x & 0177。二是让某变量保留某几位,其余位置0,如以下代码让x只保留最低6位:x = x & ...

按位与、按位异或、按位取反各是什么意思?C++
就是先把数都转换为2进制按题目要求运算1为真0为假与就是两数相与全是真的时候结果为真其他全为假,取反就是去相反的意思呀,真是为假、假时为真,异或就是两个个数比较真异或假时为真,假异或真时为真,真异或真时为假,假异或假时为假。就是相同为假,相反为真。

C语言中的按位与、按位与、取反等优先级如何?
1、~:意思是按位取反,类似于非(!)的关系,取它的反面。2、<<: 意思是左移,移动二进制的位。3、& : 意思是按位与,类似于与(&&)的关系,一假为假。4、^:意思是按位异或,通俗地说就是相同为0,不同为1.5、|:意思是按位或,类似于或(||)的关系,一真为真。

c语言中按位与。。按位或什么意思
位运算符C语言提供了六种位运算符:& 按位与 | 按位或 ^ 按位异或 ~ 取反 << 左移 >> 右移 按位与运算 按位与运算符"&"是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1 ,否则为0。参与运算的数以补码方式出现。例如:9&5可写...

c语言中按位与按位或是什么意思
按位或运算符“|”是双目运算符。其功能是参与运算的两数各对应的二进位相或。只要对应的二个二进位有一个为1时,结果位就为1。当参与运算的是负数时,参与两个数均以补码出现。整数在计算机中用二进制的位来表示,C语言提供一些运算符可以直接操作整数中的位,称为位运算,这些运算符的操作数都...

C语言位运算里~、<<、>>、&、|、^、这些怎么用?
按位异或 ~ 取反 << 左移 >> 右移<< 1. 按位与运算。按位与运算符"&"是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1 ,否则为0。参与运算的数以补码方式出现。2. 按位或运算。按位或运算符“|”是双目运算符。其功能是参与...

C语言的按位与、或、非、异或都什么意思。有什么用
在计算机中,数据都是以二进制数形式存放的,位运算就是指对存储单元中二进制位的运算。C语言提供6种位运算符。包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>)六种。位运算符 & |~<< >> ∧ 按优先级从高到低排列的顺序是:位运算...

相似回答