欢迎访问文稿网!

二进制算术运算

范文之家 分享 时间: 加入收藏 我要投稿 点赞

二进制算术运算

    二进制运算是所有数字计算机和很多数字系统实现的基础,包括算术运算和逻辑运算两种运算。为了全面理解数字系统,必须理解二进制加、减、乘、除四则运算的规则,本节提供一些未来学习中可能出现的运算介绍。

    1. 二进制加法

    二进制加法四种基本运算规则如下所示:

    0 + 0 = 0  0与0求和为0,无进位

    0 + 1 = 1  0与1求和为1,无进位

    1 + 0 = 1  1与0求和为1,无进位

    1 + 1 = 10  1与1求和为0,有进位,进位为1

    【例5 − 2 − 7】求解以下二进制数的和值。

    (a) 11+11  (b) 111+11

    其中,解答左侧是二进制加法运算,右侧是十进制加法运算作为参考。

    2. 二进制减法

    二进制减法四种基本运算规则如下所示:

    0 − 0 = 0  0与0求差为0,无借位

    1 − 1 = 0  1与1求差为0,无借位

    1 − 0 = 1  1与0求差为1,无借位

    10 − 1 = 1  0与1求差为1,有借位,借位为1

    【例5 − 2 − 8】求解以下二进制数的差值。

    (a) 11 − 01  (b) 101 − 10

    其中,解答左侧是二进制减法运算,右侧是十进制减法运算作为参考。(a)为无借位的情况, (b)为有借位的情况。可以看出,二进制减法运算相对比较复杂,首先要比较两个数的大小,判断差的正负,再进行大数减小数的减法运算。所以在计算机中,常用二进制补码的加法运算来代替直接的二进制减法运算,将在下面介绍。

    3. 二进制乘法

    二进制乘法四种基本运算规则如下所示:

    0×0 = 0 0与0乘积为0

    0×1 = 0 0与1乘积为0

    1×0 = 0 1与0乘积为0

    1×1 = 1 1与1乘积为1

    【例5 − 2 − 9】求解以下二进制数的乘积。

    (a) 11×11 (b) 101×110

    其中,解答左侧是二进制乘法运算,右侧是十进制乘法运算作为参考。二进制乘法与十进制乘法是类似的,这个过程需要部分积的参与,每次有部分乘积的时候左移一位,最后把所有的部分积相加得到最终乘积结果。从这里可以看出二进制的乘法其实就是移位和加法运算,在计算机内部就是这样进行算术乘法运算的。

    4. 二进制除法

    二进制除法与十进制除法有着相同的过程,参见下面的例子。

    【例5 − 2 − 10】求解以下二进制数的除法。

    (a) 110÷10  (b) 1001÷11

    二进制除法实质上就是右移位和减法,可以用移位和补码加法来完成。

    5. 原码、反码和补码

    数字系统,比如计算机,必须有处理正负数的能力,一个有符号的二进制数包括符号和数值两部分。符号位表示了数的正与负,通常在二进制数的左边增加一位作为该数的符号位, 0表示正数,1表示负数,如:有符号二进制数1001表示“− 1”,0101表示“+5”。

    带符号的二进制数实质上就是数值的一种编码表示,称为机器数。常用的机器数有三种表示形式:原码、反码和补码。

    (1)原码:二进制数由符号位加上数值本身。

    如:十进制数+20的原码表示为010100, − 20的原码表示为110100。左边为该数的符号位,右边为该数的绝对值大小。

    (2)反码:正数的反码与原码相同,负数的反码可以由原码求得:原码的符号位不变,数值位按位取反。

    如:+20的反码表示为010100, − 20的反码表示为101011。

    (3)补码:正数的补码与原码相同,负数的补码为反码加1。

    如:+20的补码表示为010100, − 20的补码表示为101100。

    减法可以看成是一个正数和一个负数相加,因此数字电路中的减法运算可以用补码加法来实现。

    补码加法运算的规则是:两个补码的和也是补码。进行补码加法运算时符号和数值位同时参加运算,当符号位在相加时产生进位,则将该进位“1”去掉即可。

    【例5 − 2 − 11】求解以下二进制数补码的运算。

    (a) 00001000 − 00000101  (b) 1100+0100

    解:(a)8−5=8+(−5)=3   (b) 12+4=16

    从上例运算可以看出,补码进行加、减法运算更加方便,这里需要指出的是例子(b)中假如参与运算的字长为4位,那么加法操作后溢出位“1”就会被丢弃,假如是5位字长参与运算就会得到正确的运算结果。因此在做补码运算的时候要考虑实际需要的字长,才不会产生溢出丢弃有效数据的现象。

221381
领取福利

微信扫码领取福利

微信扫码分享