发现的有点晚了,哈哈哈哈。
1
Xusually 2022-06-05 23:29:21 +08:00 via iPhone
哈哈 这是简单版本
楼主你猜加法器是怎么实现的? |
2
cpstar 2022-06-05 23:37:09 +08:00
等等,我还没有读懂第一句,两个等于 1 的位不重叠的二进制数,后半句明白了,位不重叠的二进制数,两个也知道是什么,但是等于 1 是什么概念?
|
3
yigecaiji 2022-06-05 23:57:45 +08:00 via Android
@cpstar 比如,10101 和 01010 进行按位或和相加所得的结果一样,所以等于 1 指的应该是位上的值。
|
4
jaggle OP @cpstar 就是 比如 a=101010 ,第 2 、4 、6 位等于 1 ,b=10101 ,第 1 ,3 ,5 位等于 1 ,因此这两个数 a | b 和 a + b 都等于 111111
|
5
misdake 2022-06-06 00:16:29 +08:00
不知道这种情况下,现代 CPU 去跑“或”和“加”之间有没有功耗上的区别哦
|
6
cpstar 2022-06-06 00:24:41 +08:00
恕我愚钝,二进制,每个位上的数,除了 0 不就是 1 ?难道还有 2 的情况。。。。
算了不纠结这个 这里边唯一破坏这条结论的不就是 1+1=10≠01=1 OR 1 ,存在了进位,而其他三种情况,+和 OR 结果一致。 但是 1# 所述的加法器,用的一个与门和一个异或门,与门用于计算进位,异或门用于计算本位。 |
7
cpstar 2022-06-06 00:26:59 +08:00
@misdake 5# 你要问的是 CPU 处理 OR 指令和 ADD 指令有什么物理结构上的区别。但事实上 ADD 是一个 XOR 和一个 AND 组成的。
|
8
debuggerx 2022-06-06 07:27:23 +08:00 via Android
结果一致,但是优先级不同,所以一般不会用+替代|
http://www.debuggerx.com/2020/11/11/learn-about-digitwise-operation/ |