ipguard下载:C语言中的位运算是怎样的

来源:百度文库 编辑:高校问答 时间:2024/04/28 06:36:55
我不理解什么"按位与,按位或"

如果你把所有的操作数都用二进制来表达就清晰了,如下

位与 & 相同位按与来运算即可 如:
1 & 2 =0
-------------
二进制是这样的 01 & 10 = 00

位或 | 一样,按位来或即可
1|2 = 3
--------------
二进制是这样: 01|10=11

其他位运算都是按二进制位来运算的,你转换成2进制就好理解了

先把要进行运算的两个数转换成二进制:
下面是“按位与”:--就是要两个都是真才是真(1)
0 1 0 1 0 0 1 0
1 1 1 1 1 0 0 0
-------------------
0 1 0 1 0 0 0 0
-------------------------------------------------
下面是“按位或”:--就是一个是真就可以了(1)
0 1 0 1 0 0 1 0
1 1 1 1 1 0 0 0
----------------------
1 1 1 1 1 0 1 0
-------------------------------
-----这样看起来符合我们的运算习惯。

&和|的关系
(1)若a=true b=false 则:
a&&b=false
a||b=true
(2)若a=false a=true
a&&b=false
a||b=true
(3)若a=true b=true
a&&b=true
a||b=true
(4)若a=false b=false
a&&b=false
a||b=false
仔细想一下就明白了!

先将参加运算的两个数化成二进制,然后相应位进行运算。

你把运算原则搞清楚不就行了

和数字电路中的完全一样啊