C语言的a|b是什么意思?什么是按位或?

2025-04-06 18:06:16
推荐回答(4个)
回答1:

a|b这个就是按位或
按位或是位运算的一种,是将两个数据的二进制表示右对齐后,按位进行运算,两个对应的二进制位中只要一个是1,结果对应位就是1
1|1=0,1|0=1,0|1=1,0|0=0

比如说十进制数2和1
2|1
先把它们换成二进制表示
10,01
按照刚才的规则:
10
| 01
--------
11

结果是二进制的11,也就是十进制的5

回答2:

举个例子 数字 1 转换成二进制的8位数据就是 00000001
数字3 转换成 二进制就是 00000011
1与3(1&3) 就是把 对应的位想与(0&0为0,1&0为0,1&1为1)
结果为 00000001
1或3(1|3)就是把 对应的位想或(0|0为0,1|0为1,1|1为1)
结果为 00000011

回答3:

http://msdn.microsoft.com/zh-cn/library/7tafsdcy(v=vs.80).aspx

回答4:

二进制11不是3吗