补基础:自学:计算机科学导论 第四章 数据运算

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了补基础:自学:计算机科学导论 第四章 数据运算相关的知识,希望对你有一定的参考价值。

4.1 逻辑运算:指那些应用于模式中的一个二进制位,或在两个模式中相应的两个二进制位的相同基本运算。

4.1.1 位层次上的逻辑运算

0 代表逻辑 假, 1 代表逻辑 真。

4种操作:

  1. 非(NOT):只有一个输入
    如果输入是0, 则输出为1。反之亦然
    应用:对整个模式求反
  2. 与(AND)有两个输入
    如果输入都是1, 则输出为1。输入中只要有一位是0,则结果为0
    应用:把一个位模式的指定位复位(置0)。这种情况下,第二个输入称为掩码,掩码中的0位对第一个输入中相应的位进行复位。
  3. 或(OR)有两个输入
    如果输入都是0,则输出为0。 输入中只要有一位是1,则结果为1
    应用:把一个位模式的指定位置位(置1)
  4. 异或(XOR)有两个输入
    如果输入都是1,则输出为0。也就是说,输入相同时,输出为0,不同时,则输出为1
    应用:使指定的位反转。

4.1.2 模式层次上的逻辑运算

例 4.3 – 4.6 分别用NOT, AND, OR, XOR计算位模式

  1 0 0 1 1 0 0 0 输入
NOT 0 1 1 0 0 1 1 1 输出

 

  1 0 0 1 1 0 0 0 输入1
AND 0 0 1 0 1 0 1 0 输入2
  0 0 0 0 1 0 0 0 输出

 

  1 0 0 1 1 0 0 1 输入1
OR 0 0 1 0 1 1 1 0 输入2
  1 0 1 1 1 1 1 1 输出

 

  1 0 0 1 1 0 0 0 输入1
XOR 0 0 1 0 1 1 1 0 输入2
  1 0 1 0 0 1 1 1 输出

 

4.2 移位运算

4.2.1 逻辑移位运算:应用于不带符号位的数的模式。

1.逻辑移位:逻辑右移运算把每一位向右移动一个位置。在n位模式中,最右位被丢弃,最左位填0。逻辑左移则相反。

例 4.10 将10011000逻辑左移

移位后:00110000

2. 循环移位:对位进行移位,但没有位被丢弃或增加。循环右移把每一位向右移动一个位置,最右位被回环,成为最左位。循环左移则相反。

例 4.11 将10011000循环左移

移位后: 00110001

4.2.2 算数移位运算:假定位模式是用二进制补码格式表示的带符号韦德整数。算数右移被用来对整数除以2;算数左移被用来对整数乘以2。

这些运算不应该改变符号位。算数右移保留符号位,但同时也把它复制,放入相邻的右边的位中;算数左移丢弃符号位,接受它的右边的位作为符号位。

例 4.12 对位模式10011001使用算术右移。模式是二进制补码格式的整数

解: 最左位被保留,并被复制到相邻的右边的位中。得出结果:11001100

原始数是-103,新的数是-52,它是-103被除以2并取整的结果。

例 4.13 对位模式110011001使用算数左移,模式是二进制补码格式的整数

解: 最左位被丢弃,0作为最右位被插入。得出结果10110010

原始数是-39,新的数是-78,原始数被乘以2。

例 4.14 对位模式01111111使用算术左移,模式是二进制补码格式的整数

解:最左位被丢弃,0作为最右被插入。结果为11111110

原始数是127,新的数是-2。发生上溢,结果非法。期望的答案是127 * 2 = 254,这个数不能用8位模式表示。

4.3 算术运算

4.3.1 整数的算术运算

1. 二进制补码整数的加减法

二进制补码表示法的加法和减法之间没有区别。遇到减法运算时,计算机会把它转变为加法,但要为第二个数(减数)求二进制的补。

如果给一个整数的反码加1,就得到它的补码。

过程:

1) 如果运算是减法,则取第二个整数的二进制补码,否则,转下一步。

2)两个整数相加

例4.16 以二进制补码格式存储两个整数A和B,显示B是如何被加到A上的

A = 00010001,B = 00010110

   0 0 0 1 0 0 0 1    A

+0 0 0 1 0 1 1 0    B

   0 0 1 0 0 1 1 1    R

例4.18 以二进制补码格式存储两个整数A和B,显示如何从A中减去B

A = 000110000, B = 11101111

相减运算,所以先要求B的补码,补码等于反码加1:

B的反码:00010000        B的补码:00010001

运算过程:

   0 0 0 1 1 0 0 0    A

+0 0 0 1 0 0 0 1    B

   0 0 1 0 1 0 0 1    R

注意:运算结果需要在二进制位的定义范围之内,否则会发生上溢或下溢

2. 符号加绝对值整数的加减法

流程:

1)检查运算,如果是减法,那么改变第二个整数的符号

2)对两符号应用XOR运算,如果结果是0,则意味着符号是相同的。

3)如果符号是相同的,R = +- (AM + BM),则需要加绝对值,结果的符号是相同的符号,所以得到: RM = (AM) + (BM) 和 RS = AS

下标M意味着绝对值,下标S意味着符号。相加两个绝对值时,可能会发生上溢,它必须被报告,处理过程终止。

4)如果符号不同,R = +-(AM - BM),则需要从A中减去B,然后对符号进行判断,不是一位接一位地相减,而是取第二个绝对值的二进制补码,相加它们。结果的符号是较大绝对值整数的符号。

a. 如果AM >= BM ,那就有上溢,结果是一个正数。所以,如果有上溢,则舍弃上溢,使结果的符号取A的符号

b. 如果AM < BM,那就没有上溢,结果是一个负数。所以,如果没有上溢,则取结果的二进制补,使结果的符号取B的符号

 

4.3.2 实数的算术运算

实数的加减法

流程:

1)如果两数(A或B)中任一个为0,那么令结果为0,过程中止

2)如果运算时减法,那么改变第二个数的符号来模拟加法

3)通过在尾数中包含隐含的1和增加指数,将两个数去规范化

4)然后统一指数,这意味着增加较小的指数,移位相应的尾数,直到两个数具有相同的指数

5)把每个数的符号和尾数的组合看成一个符号加绝对值格式的整数

6)最后,再次规范化数

以上是关于补基础:自学:计算机科学导论 第四章 数据运算的主要内容,如果未能解决你的问题,请参考以下文章

补基础:自学:计算机科学导论 第一章 绪论

补基础:自学:计算机科学导论 第三章 数据存储

补基础:自学:计算机科学导论 第三章 数据存储 续

补基础:自学:计算机科学导论 第六章 计算机网络

补基础:自学:计算机科学导论 第二章 数字系统

20191320《信息安全导论》第四周学习总结