二进制加法器原理
位运算
位运算都只针对二进制
二进制只有0和1
这是二进制加法器的基础
会的话可以跳过
- 位运算
- 与
- 或
- 非
- 异或
- ……
与运算(and)
and | 0 | 1 |
---|---|---|
0 | 0 | 0 |
1 | 0 | 1 |
当两个数为1时,结果为1
或运算(or)
or | 0 | 1 |
---|---|---|
0 | 0 | 1 |
1 | 1 | 1 |
当一个数为1时,结果为1
非运算(not)
not | 0 | 1 |
---|---|---|
not | 1 | 0 |
求反
异或运算(xor)
xor | 0 | 1 |
---|---|---|
0 | 0 | 1 |
1 | 1 | 0 |
当两个数相同时,结果为0
加法器
再来一个表格
+ | 0 | 1 |
---|---|---|
0 | 00 | 01 |
1 | 01 | 10 |
0+0=00
0+1=01
1+0=01
1+1=10
单看个位
0+0->0
0+1->1
1+0->1
1+1->0
回头看一下xor
运算的表格
是不是一样
再看十位
0+0->0
0+1->0
1+0->0
1+1->1
回头看一下and
运算的表格
是不是一样
所以
加法器的结果可以分为十位和个位
1+1
十位是1 and 1 = 1
个位是1 xor 1 = 0
结果是10
以上这个加法器叫半加器
输入两个1或0 输出十位和个位
如果两位数相加呢?
那就把多个半加器组和在一起