登录/注册

二进制数在运算方面有哪些方法与规则要求?

不同进制之间的转换本质就是确定各个不同权值位置上的数码。转换正整数的进制的有一个简单算法,就是通过用目标基数作长除法;余数给出从最低位开始的“数字”。

更多

二进制数的运算方法与规则要求主要基于“逢二进一”的基本原则,主要分为以下几类:

一、算术运算 (类似于十进制)

  1. 加法:

    • 规则:
      • 0 + 0 = 0
      • 0 + 1 = 1
      • 1 + 0 = 1
      • 1 + 1 = 0 (进位 1)
      • 1 + 1 + 1 = 1 **(进位 1)`
    • 方法:最低位(最右边)开始相加,逐位计算当前位的和以及产生的进位。进位需要加到下一位的运算中。
    • 要求: 需要正确处理进位。
  2. 减法:

    • 规则:
      • 0 - 0 = 0
      • 1 - 0 = 1
      • 1 - 1 = 0
      • 0 - 1 = 1 **(需要借位 1)`
    • 方法:最低位(最右边)开始相减。当需要0 - 1时,必须向左边更高位借位
      • 借位后,当前位得到 1 (相当于借来了 2(10)) ,然后用 10(2) - 1(2) = 1(2) (注意:这里的 10(2) 是二进制数,等于十进制的2)。
      • 被借位的那一位需要减去 1
    • 要求: 需要正确处理借位。重要替代方法: 计算机内部常使用补码来表示负数,将减法转化为加法(A - B = A + (-B) = A + B的补码),简化电路设计并统一加减法操作。
  3. 乘法:

    • 规则:
      • 0 * 0 = 0
      • 0 * 1 = 0
      • 1 * 0 = 0
      • 1 * 1 = 1
    • 方法:
      • 类似于十进制乘法。乘数(下面那个数)的每一位(0或1)依次去乘被乘数(上面那个数)
      • 如果乘数的当前位是0,则中间积(Partial Product)为全0
      • 如果乘数的当前位是1,则中间积就是被乘数本身(前面根据需要补0以对齐)。
      • 将所有的中间积(按位权对齐后)相加,得到最终的乘积。
    • 要求: 本质上是移位和加法的组合。
  4. 除法:

    • 方法: 类似于十进制除法。
      • 比较被除数(或当前余数)和除数的大小(位数对齐)。
      • 如果够减(被除数 >= 除数),商上1,然后用当前被除数(或余数)减去除数。
      • 如果不够减(被除数 < 除数),商上0
      • 将下一位被除数的位移下来,加到当前余数后面,形成新的“被除数”。
      • 重复以上步骤,直到除尽或达到所需精度。
    • 要求: 本质上是移位和减法的组合。计算机内部同样可以利用补码将除法中的减法转换为加法,但除法硬件实现相对复杂。

二、逻辑运算 (按位操作)

三、特殊规则要求 (主要针对有符号数和计算机内部表示)

  1. 位宽一致: 在进行算术运算(特别是加减乘)时,参与运算的数通常需要表示成相同的位数(位宽)。不足位的数需要在最高位前面补0(正数/无符号数)或补符号位(负数,即补1)
  2. 补码表示与运算: 这是处理有符号数减法的关键。
    • 正数的补码就是其本身(前面补0)。
    • 负数的补码 = 该数的绝对值的原码【按位取反】+ 1。 通常符号位固定为1(表示负数)。
    • 规则: 采用补码后,减法 A - B 变成了 A + (-B) = A + B的补码。最高位产生的进位(如果超过位宽)会被丢弃(溢出标志会根据不同规则置位)
    • 优点: 统一了加减法运算,简化了硬件电路。
  3. 溢出判断: 在进行补码加减法时,如果两个正数相加结果为负数,或两个负数相加结果为正数,则发生了溢出(Overflow),计算结果无效(超出了该位宽补码所能表示的范围)。需要通过检查原始操作数符号位结果符号位之间的关系来检测溢出。
  4. 符号扩展: 将位数较少的有符号数扩展到更多位时,需要在新的高位部分填充原始最高位的值(即符号位),以保持其数值不变(正数填0,负数填1)。
  5. 零扩展: 将位数较少的无符号数扩展到更多位时,只需要在原始数的高位填充0

总结

二进制数的运算基础基于简单的01的真值表逻辑:

二进制处理中的一些技巧

在二进制和十进制的处理中,有时候一些小技巧是很有用的。 1、把十进制数

2024-07-05 11:51:53

如何实现二进制和BCD码数据的相互转变?

如何实现二进制和BCD码数据的相互转变? 二进制码是将十进制数字表示为二进制

2024-02-18 14:51:58

10进制转换为二进制的算法

10进制转换为二进制是计算机领域中非常重要的一个问题。在计算机中,所有的数据都是以二进制形式进行存储和处理的。因此,我们常常需要将10

2024-01-11 09:14:29

二进制开源分享

电子发烧友网站提供《二进制数开源分享.zip》资料免费下载

资料下载 张文 2023-06-26 11:40:52

【2021-04-05】二进制中的原码反码补码与二进制的左移右移

二进制中原码补码与左移右移

资料下载 佚名 2022-01-12 18:28:33

基于FPGA的二进制相移键控设计方案

基于FPGA的二进制相移键控设计方案

资料下载 佚名 2021-05-28 09:36:50

计算机的二进制概念和进制运算的详细资料简介

本文档的主要内容详细介绍的是计算机的二进制概念和进制运算的详细资料简介。

资料下载 佚名 2019-12-11 17:34:45

KEIL C51二进制输入宏的详细方法程序说明

本文档的主要内容详细介绍的是KEIL C51二进制数输入宏的详细方法程序说明。在C语言中有十

资料下载 佚名 2019-03-12 17:05:37

二进制数据及取值范围的计算方法

本文介绍二进制数据的相关知识,如定义、取值范围计算、转换为十进制的方法以及一些常见位数的

2023-11-08 15:48:03

数字二进制计数器的设计和实现

将二进制数视为元胞自动机可能有助于数字二进制计数器的设计和实现吗?

2022-07-28 11:47:10

二进制运算及加法电路

前言上篇 计算机组成原理第1章 计算机基础知识1.1 数制1.2 逻辑代数(布尔代数)1.3 逻辑电路1.4 二进制数的运算及加法电路第2章 微

2021-09-10 07:34:55

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

“与” , 其结果必为 0; 凡同 1 相“与” , 其结果不变(0 同 1 相“与”仍为 0, 1 同 1 相“与”仍为 1) 。因此, 如果一个 8 位二进制数, 想要保留其中的几位而屏蔽(清除) 掉其余

2019-12-25 16:36:41

如何理解二进制运算规则 二进制是如何运算

二进制运算规则二进制的

2019-12-11 17:49:02

二进制转换成bcd码

二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位

2019-11-22 07:01:00

二进制加法器电路框图

二进制加法器是半加器和全加法器形式的运算电路,用于将两个二进制数字加在一起.

2019-06-22 10:56:38

7天热门专题 换一换
相关标签