单片机/MCU论坛
直播中

alexdos

6年用户 804经验值
擅长:可编程逻辑 电源/新能源 嵌入式技术 模拟技术
私信 关注
[讨论]

二进制数逻辑运算是怎么运算的

1.“与”运算

“与”运算是实现“必须都有, 否则就没有”这种逻辑的一种运算。其运算规则是

0 ¡¤0 = 0
1 ¡¤0 = 0
0 ¡¤1 = 0
1 ¡¤1 = 1

我们可以看到, 凡同 0 相“与” , 其结果必为 0; 凡同 1 相“与” , 其结果不变(0 同 1 相“与”仍为 0, 1 同 1 相“与”仍为 1) 。因此, 如果一个 8 位二进制数, 想要保留其中的几位而屏蔽(清除) 掉其余的几位, 则可以用另外一个 8 位二进制数去相“与” , 这个 8 位二进制数在保留的相应 位上为 1, 在要屏蔽的相应位上为 0。例如, 要保留第 0、 4、 5 位, 屏蔽掉其余各位, 则用 00110001 去相“与”。

2.“或”运算

“或”运算是实现“只要其中之一有, 就有”这种逻辑的一种运算。其运算规则是

0 + 0 = 0
1 + 0 = 1
0 + 1 = 1
1 + 1 = 1

我们可以看到, 凡同 0 相“或” , 其结果不变(0 同 0 相“或”仍为 0, 1 同 0 相“或”仍为 1); 凡同 1 相“或” , 其结果必为 1。因此, 如果一个 8 位二进制数, 想要保留其中的几位而置位( 置 1) 其余的几位, 则可以用另外一个 8 位二进制数去相“或” , 这个 8 位二进制数在要保留的相应 位上为 0, 在要置位的相应位上为 1。例如, 要置位第 0、 3、 7 位而其余各位不变, 则用 10001001 去相“或”。

3.“非”运算

“非”运算是实现“求反”这种逻辑的一种运算。其运算规则是

0 = 1
1 = 0

4.“异或”运算

“异或”运算是实现“必须不同, 否则就没有”这种逻辑的一种运算。其运算规则是

0 1 = 1
1 0 = 1

我们可以看到,“异或”运算可以用来测试两个输入变量是否相等, 当相等时结果为 0, 当不 相等时结果不为 0。

更多回帖

发帖
×
20
完善资料,
赚取积分