二进制数在运算方面有哪些方法与规则要求?
不同进制之间的转换本质就是确定各个不同权值位置上的数码。转换正整数的进制的有一个简单算法,就是通过用目标基数作长除法;余数给出从最低位开始的“数字”。
更多
二进制数的运算方法与规则要求主要基于“逢二进一”的基本原则,主要分为以下几类:
一、算术运算 (类似于十进制)
-
加法:
- 规则:
0 + 0 = 00 + 1 = 11 + 0 = 11 + 1 = 0(进位 1)1 + 1 + 1 = 1**(进位 1)`
- 方法: 从最低位(最右边)开始相加,逐位计算当前位的和以及产生的进位。进位需要加到下一位的运算中。
- 要求: 需要正确处理进位。
- 规则:
-
减法:
- 规则:
0 - 0 = 01 - 0 = 11 - 1 = 00 - 1 = 1**(需要借位 1)`
- 方法: 从最低位(最右边)开始相减。当需要
0 - 1时,必须向左边更高位借位。- 借位后,当前位得到
1(相当于借来了2(10)) ,然后用10(2) - 1(2) = 1(2)(注意:这里的10(2)是二进制数,等于十进制的2)。 - 被借位的那一位需要减去
1。
- 借位后,当前位得到
- 要求: 需要正确处理借位。重要替代方法: 计算机内部常使用补码来表示负数,将减法转化为加法(A - B = A + (-B) = A + B的补码),简化电路设计并统一加减法操作。
- 规则:
-
乘法:
- 规则:
0 * 0 = 00 * 1 = 01 * 0 = 01 * 1 = 1
- 方法:
- 类似于十进制乘法。乘数(下面那个数)的每一位(0或1)依次去乘被乘数(上面那个数)。
- 如果乘数的当前位是
0,则中间积(Partial Product)为全0。 - 如果乘数的当前位是
1,则中间积就是被乘数本身(前面根据需要补0以对齐)。 - 将所有的中间积(按位权对齐后)相加,得到最终的乘积。
- 要求: 本质上是移位和加法的组合。
- 规则:
-
除法:
- 方法: 类似于十进制除法。
- 比较被除数(或当前余数)和除数的大小(位数对齐)。
- 如果够减(被除数 >= 除数),商上
1,然后用当前被除数(或余数)减去除数。 - 如果不够减(被除数 < 除数),商上
0。 - 将下一位被除数的位移下来,加到当前余数后面,形成新的“被除数”。
- 重复以上步骤,直到除尽或达到所需精度。
- 要求: 本质上是移位和减法的组合。计算机内部同样可以利用补码将除法中的减法转换为加法,但除法硬件实现相对复杂。
- 方法: 类似于十进制除法。
二、逻辑运算 (按位操作)
- 按位与 (AND)
&:- 规则: 两位都为
1时,结果才为1。0 & 0 = 00 & 1 = 01 & 0 = 01 & 1 = 1
- 应用: 位掩码、清零某些位、提取特定位。
- 规则: 两位都为
- 按位或 (OR)
|:- 规则: 只要有一位为
1,结果就为1。0 | 0 = 00 | 1 = 11 | 0 = 11 | 1 = 1
- 应用: 设置某些位为
1。
- 规则: 只要有一位为
- 按位非 (NOT)
~:- 规则: 取反操作,
0变1,1变0。~0 = 1~1 = 0
- 应用: 对某一位或整个数取反。注意: 按位非操作依赖于数的位宽表示(补码表示下的非运算有其特定含义)。
- 规则: 取反操作,
- 按位异或 (XOR)
^:- 规则: 两位不相同时为
1,相同时为0。0 ^ 0 = 00 ^ 1 = 11 ^ 0 = 11 ^ 1 = 0
- 应用: 翻转某些位、两个数交换值(无需临时变量)、简单的加密/校验(如奇偶校验生成)。
- 规则: 两位不相同时为
- 移位运算:
- 逻辑左移 (
<<): 将所有位向左移动指定位数,右侧空出的低位填充0,最左侧的超高位移出丢弃。- 相当于乘以 2^n (n 是移动的位数)。
- 逻辑右移 (
>>>): 将所有位向右移动指定位数,左侧空出的高位填充0,最右侧的超低位移出丢弃。- 相当于除以 2^n (n 是移动的位数,结果向下取整)。
- 算术右移 (
>>): (主要用于有符号数)将所有位向右移动指定位数,左侧空出的高位填充符号位的值(如果原来是正数 - 符号位0,则填0;如果是负数 - 符号位1,则填1),最右侧的超低位移出丢弃。- 对于有符号数(补码表示),算术右移一位相当于除以 2 (向下取整)。
- 要求: 指定移动位数。
- 逻辑左移 (
三、特殊规则要求 (主要针对有符号数和计算机内部表示)
- 位宽一致: 在进行算术运算(特别是加减乘)时,参与运算的数通常需要表示成相同的位数(位宽)。不足位的数需要在最高位前面补0(正数/无符号数)或补符号位(负数,即补1)。
- 补码表示与运算: 这是处理有符号数和减法的关键。
- 正数的补码就是其本身(前面补0)。
- 负数的补码 = 该数的绝对值的原码【按位取反】+ 1。 通常符号位固定为1(表示负数)。
- 规则: 采用补码后,减法 A - B 变成了 A + (-B) = A + B的补码。最高位产生的进位(如果超过位宽)会被丢弃(溢出标志会根据不同规则置位)。
- 优点: 统一了加减法运算,简化了硬件电路。
- 溢出判断: 在进行补码加减法时,如果两个正数相加结果为负数,或两个负数相加结果为正数,则发生了溢出(Overflow),计算结果无效(超出了该位宽补码所能表示的范围)。需要通过检查原始操作数符号位和结果符号位之间的关系来检测溢出。
- 符号扩展: 将位数较少的有符号数扩展到更多位时,需要在新的高位部分填充原始最高位的值(即符号位),以保持其数值不变(正数填0,负数填1)。
- 零扩展: 将位数较少的无符号数扩展到更多位时,只需要在原始数的高位填充0。
总结
二进制数的运算基础基于简单的0和1的真值表逻辑:
- 算术运算(加、减、乘、除) 遵循“逢二进一、借一当二”的基本原理,核心在于进位和借位的处理。补码是处理有符号数和减法运算的核心机制。
- 逻辑运算(与、或、非、异或) 是按位进行的,遵循各自的逻辑规则。
- 移位运算 可以实现高效的乘除运算和数据操作。
- 重要规则要求 包括:位宽一致性、补码转换、溢出判断、符号扩展、零扩展。遵守这些规则才能保证二进制数在计算机系统中运算的正确性。
10进制转换为二进制的算法
10进制转换为二进制是计算机领域中非常重要的一个问题。在计算机中,所有的数据都是以二进制形式进行存储和处理的。因此,我们常常需要将10
2024-01-11 09:14:29
二进制数的运算及加法电路
前言上篇 计算机组成原理第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
7天热门专题
换一换
换一换
- 如何分清usb-c和type-c的区别
- 中国芯片现状怎样?芯片发展分析
- vga接口接线图及vga接口定义
- 华为harmonyos是什么意思,看懂鸿蒙OS系统!
- 芯片的工作原理是什么?
- ssd是什么意思
- 什么是蓝牙?它的主要作用是什么?
- 汽车电子包含哪些领域?
- TWS蓝牙耳机是什么意思?你真的了解吗
- 什么是单片机?有什么用?
- 升压电路图汇总解析
- plc的工作原理是什么?
- 再次免费公开一肖一吗
- 充电桩一般是如何收费的?有哪些收费标准?
- ADC是什么?高精度ADC是什么意思?
- EDA是什么?有什么作用?
- 中科院研发成功2nm光刻机
- 苹果手机哪几个支持无线充电的?
- dtmb信号覆盖城市查询
- 怎样挑选路由器?
- 华为芯片为什么受制于美国?
- 元宇宙概念股龙头一览
- type-c四根线接法图解
- 锂电池和铅酸电池哪个好?
- 什么是场效应管?它的作用是什么?
- 如何进行编码器的正确接线?接线方法介绍
- 虚短与虚断的概念介绍及区别
- 晶振的作用是什么?
- 大疆无人机的价格贵吗?大约在什么价位?
- 苹果nfc功能怎么复制门禁卡
- 单片机和嵌入式的区别是什么
- amoled屏幕和oled区别
- BLDC电机技术分析
- 复位电路的原理及作用
- dsp是什么意思?有什么作用?
- iphone13promax电池容量是多少毫安
- 苹果无线充电器怎么使用?
- 芯片的组成材料有什么
- 特斯拉充电桩充电是如何收费的?收费标准是什么?
- 直流电机驱动电路及原理图
- 自举电路图
- 通讯隔离作用
- 苹果笔记本macbookpro18款与19款区别
- 新斯的指纹芯片供哪些客户
- 伺服电机是如何进行工作的?它的原理是什么?
- 无人机价钱多少?为什么说无人机烧钱?
- 传感器常见类型有哪些?
- 以太网VPN技术概述
- 手机nfc功能打开好还是关闭好
- 十大公认音质好的无线蓝牙耳机