问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

数字电路设计中的二进制补码计算详解

创作时间:
作者:
@小白创作中心

数字电路设计中的二进制补码计算详解

引用
CSDN
1.
https://m.blog.csdn.net/weixin_43277020/article/details/140363011

二进制补码计算是数字电路设计中的基础知识,也是计算机科学的重要组成部分。本文将从原码、反码和补码的基本概念出发,深入探讨补码在乘法运算中的应用,帮助读者更好地理解这一核心概念。

基本知识

原码(Sign and Magnitude)是一种最简单的表示法,使用符号位和数值位来表示整数。

符号位:最高位是符号位,0表示正数,1表示负数。
数值位:剩下的位表示数值的大小。

反码(One’s Complement)是通过将数值位逐位取反来表示负数。

正数的反码:与其原码相同。
负数的反码:符号位为1,数值位逐位取反。

补码(Two’s Complement)是计算机中最常用的表示法,通过在反码的基础上加1来表示负数。它解决了反码表示零有两个表示的问题,并且使加减法运算更为简便。

正数的补码:与其原码相同。
负数的补码:符号位为1,数值位逐位取反后加1。

乘法

正数和负数的乘法共有4种情况:

  • 正正得正
  • 正负为负
  • 负正为负
  • 负负得正

正数乘正数

常规运算即可。

负数乘正数

  • 负数写在被乘数的位置
  • 正数写在乘数的位置
  • 部分积需要符号扩展,扩展长度为2n
  • 另一个例子:8bit x 8bit = 16 bit

负数乘负数

4bit x 4bit = 8bit

  • 负数需要进行符号扩展
  • 符号位的计算单独处理

原理说明

对于1 A N − 2 A N − 3 . . . A 0 1A_{N-2}A_{N-3}...A_01AN−2 AN−3 ...A0 表示的Nbit负数补码,其真实的值为A = ( − 1 ) × 2 N − 1 + A N − 2 × 2 N − 2 + . . . + A 0 × 2 0 A = (-1)\times 2^{N-1} + A_{N-2}\times 2^{N-2} +...+ A_0 \times 2^0A=(−1)×2N−1+AN−2 ×2N−2+...+A0 ×20。即− 2 N − 1 -2^{N-1}−2N−1加上除符号bit外将其余bit看成原码表示的值。例如。1011的4bit补码表示的实际值为− 1 × 2 3 + 3 = − 5 -1\times 2^{3} + 3=-5−1×23+3=−5。

在补码的世界里,一个数乘(-1)等于求这个数的补码。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号