二进制数原码-反码和补码的数字电路实现(Logsim)
一、原码转补码原理
正数的补码是其原码本身。
负数的补码是在其原码的基础上,符号位不变,其余各位取反后加1(即在反码的基础上加1)。
例:【+1】= 原: [ 0000 0001 ] = 反:[ 0000 0001 ] = 补:[ 0000 0001 ]
【-1】 = 原:[ 1000 0001 ] = 反:[ 1111 1110 ] = 补:[ 1111 1111 ]
二、半加器和全加器
1.半加器
半加器将两个输入位加和,产生进位与和,是半加器的两个输出。半加器的输入变量叫做被加数或被加位。输出变量为和与进位。
真值表格
A | B | S(真值) | C(进位) |
---|---|---|---|
1 | 1 | 0 | 1 |
1 | 0 | 1 | 0 |
0 | 1 | 1 | 0 |
0 | 0 | 0 | 0 |
数字电路图:
利用与门和异或门实现
2.全加器
-
全加器将两个一位二进制数相加,并根据接收到的低位进位信号,输出和、进位输出。全加器的三个输入信号为两个加数A、B和低位进位Cin.全加器的输出和半加器类似,包括向高位的进位信号Cout和本位的和信号S,相加结果的总和用十进制表达为
- sum=2 x Cout +S
真值表
A | B | C(cin) | 真值 | 进位(cout) |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 1 | 0 |
0 | 1 | 0 | 1 | 0 |
0 | 0 | 1 | 1 | 0 |
1 | 1 | 0 | 0 | 1 |
1 | 0 | 1 | 0 | 1 |
0 | 1 | 1 | 0 | 1 |
1 | 1 | 1 | 1 | 1 |
数字电路图
三、最终数字电路实现
1.逻辑分析
根据原理“正数原码的补码为它本身,负数符号位不变,数位取反,末尾加一”可知,需要选择器来区分正负数,再用加法器进行负数补码运算。
2.数字电路实现
3.结果验证
正数
负数
总结
原码转补码的数字电路实现,主要应掌握转换原理和加法器原理,熟悉Logsim上的操作,熟悉逻辑门和基本线路原件。