(计算机组成原理)第二章数据的表示和运算-第二节2:原码反码补码和移码的作用(代码片段)

快乐江湖 快乐江湖     2022-12-12     691

关键词:

一:原码直接运算的弊端

前面我们刚说了各种码,计算机中的各种数是要经过大量运算的,如果在这里我们不管别的,直接按照习惯采用原码对应二进制位相加的话,如果是无符号数那么结果正确,比如下面

但是如果它们表示的是有符号数呢,那么计算的结果明显是错误的

所以这也就有要求计算机能够识别加减法运算,并能做出相应调整。算术逻辑单元也要有加法器和减法器才行,加法器实现成本较低,但是减法器成本太大,所以一个可行的方案就是使用加法代替减法

二:如何使用加法实现减法

如下有一个始终,开始时指向的是10,如果要让其指向7,那么有两种方法:逆时针旋转至7或顺时针旋转至7。

如果是逆时针旋转就相当于减法10-3=7,顺时针旋转应该加多少呢?,应该加的是9,然后使用19%12=7

这个例子反映了一个道理:一个减法操作可以转换为一个与之对应的加法操作,而这里采用的是取余。-3和9在 M O D 12 MOD 12 MOD12这样的情况下是等价的。-3和9对12取余都是9,还有很多的数在MOD12下是等价的,比如21,33,-15等等。同时这些数之间的差距均为12。

因此上面例子中10+(-3)和10+9就是等价的,运算之后再mod12就得到结果

在上面的条件中我们两个等价的数绝对值的和(m)称为模,两个数互为补数,比如-3和9。因此在(mod m)的条件下,若能找到负数的补数,就可以用正数的加法代替减法,怎么找呢?

− a ( a > 0 ) 的 补 数 = 模 − ∣ a ∣ -a(a>0)的补数=模-|a| a(a>0)=a

以下面的例子为例

要完成运算,只需要找到-14的补数即可,这里机器字长为8bit,因此其表示的数的范围为0~2 8 − 1 ^8-1 81,这个 2 8 − 1 2^8-1 281就相当于表盘上的12,所以当表示范围超时时,数字只会被映射在这个范围内,也就是说计算机天然的完成了 2 8 2^8 28的操作

因此-14的补数为 + 1 , 00000000 +1,00000000 +1,00000000- 00001110 00001110 00001110= 11110010 11110010 11110010大家认真观察就可以发现-14的补数其实就是-14的补码,接着完成运算,其结果就是0

(计算机组成原理)第二章数据的表示和运算-第二节1:定点数的表示(原码反码补码和移码)(代码片段)

文章目录一:机器数的定点表示二:无符号数和有符号数的表示(1)无符号数(2)有符号数三:原码、补码、反码和移码(1)原码A:定点整数的原码表示B:定点小数的原码表示(2... 查看详情

(计算机组成原理)第二章数据的表示和运算-第二节3:定点数的移位运算(算数移位逻辑移位和循环移位)

文章目录一:算数运算(1)原码的算数移位(2)反码的算术移位(3)补码的算数移位二:逻辑移位三:循环移位定点数的移位运算根据操作对象的不同划分为算数移位和逻辑移位。有符号数的... 查看详情

(计算机组成原理)第二章数据的表示和运算-第二节5:定点数乘法运算(原码/补码一位乘法)(代码片段)

文章目录一:乘法运算基本思想二:原码一位乘法(1)实现原理(2)手算模拟三:补码一位乘法(BoothBoothBooth算法,考察重点)一:乘法运算基本思想关于定点数的乘法,其实我们... 查看详情

(计算机组成原理)第二章数据的表示和运算-第二节8:数据的存储和排列(代码片段)

文章目录一:大小端模式二:内存(边界)对齐一:大小端模式在存储数据的时候,数据从低位到高位可以从左到右排列,也可以按从右到左的方式排列。因此,我们无法用最左或最右来表征数据... 查看详情

(计算机组成原理)第二章数据的表示和运算-第二节6:定点数除法运算(原码/补码一位除法)(代码片段)

文章目录一:除法运算基本思想二:原码一位除法:恢复余数法(1)实现原理(2)手算模拟三:原码一位除法:加减交替法(不恢复余数法)四:补码一位除法五:总结一:... 查看详情

(计算机组成原理)第二章数据的表示和运算-第二节7:详解c语言中的强制类型转换(代码片段)

...学习完前面几节的内容后,相信大家对数据是如何在计算机中存储、运算的有了更加深入的认识,那么接下来我们就以更深层次的角度来看看我们熟悉的C语言中的强制类型转换(1)无符号数和有符号数有 查看详情

(计算机组成原理)第二章数据的表示和运算-第一节5:本章习题

文章目录1.下列各种数制中,最小的数是2.7E5H+4D3H等于多少3.若十进制数为137.5,则八进制数为 查看详情

(计算机组成原理)第二章数据的表示和运算-第三节2:ieee754标准(代码片段)

文章目录一:移码(1)移码回顾(2)偏置值二:IEEE754标准(1)IEEE754标准格式(2)转换方法(3)表示范围一:移码(1)移码回顾本节内容涉及移码,有关移码的基... 查看详情

(计算机组成原理)第二章数据的表示和运算-第一节4:校验码

文章目录一:预备概念(1)校验码的概念(2)码字和码距二:常见校验码(1)奇偶校验码(2)海明校验码A:纠错理论B:求解海明码C:补充-全校验位(3)循环冗余校验... 查看详情

(计算机组成原理)第二章数据的表示和运算-第一节:bcd码

文章目录一:什么是BCD码二:常用的BCD码(1)8421码(最常用)(2)余3码(3)2421码一:什么是BCD码BCD(Binary-CodedDecimal)是指二进制编码的十进制数。我们可以用4位二进制数来表示一位十... 查看详情

(计算机组成原理)第二章数据的表示和运算-第三节1:浮点数的表示(代码片段)

文章目录一:浮点数的表示格式二:浮点数尾数的规格化(1)左规和右规(2)规格化浮点数的特点三:浮点数表示范围(408考试大纲已删除)浮点表示法是指以适当的方式将比例因子表示在数... 查看详情

(计算机组成原理)第四章指令系统-第二节2:数据寻址(直接寻址间接寻址立即数)

文章目录一:指令寻址和数据寻址二:数据寻址(1)直接寻址(2)间接寻址(3)寄存器寻址(4)寄存器间接寻址(5)隐含寻址(6)立即寻址一:指令寻址和数据寻址上一节我们讲到了指令寻址:下一条欲执行指令的地址会由... 查看详情

(计算机组成原理)第四章指令系统-第二节3:数据寻址之偏移寻址(基址寻址变址寻址和相对寻址)

...址(1)基本概念(2)相对寻址作用本小节承接上一节:(计算机组成原理)第四章指令系统-第二节2:数据寻址(直接寻址、间接寻址、立即数),主要介绍以下三种数据寻址方式,它们可以归为一类,都是将形式地址视为“偏移... 查看详情

(计算机组成原理)第二章数据的表示和运算-第三节3:浮点数加减运算

文章目录一:以十进制下的科学计数法的加减运算为例说明浮点数加减运算二:浮点数的加减运算(不舍入)三:浮点数的加减运算(舍入)四:浮点数强制类型转换一:以十进制下的科学计数... 查看详情

(计算机组成原理)第六章总线-第二节:总线仲裁

文章目录一:总线仲裁基本概念(1)主设备和从设备(2)总线仲裁的定义(3)为什么要进行总线仲裁(4)总线仲裁分类二:集中仲裁(1)链式查询方式(2)计数器查询方式三:独立请求方式一:总线仲裁基本概念(1)主设... 查看详情

计算机组成原理王道考研2021第二章:数据的表示和运算--浮点数的表示和ieee754标准

...#xff0c;正上溢和负上溢统称上溢。数据一旦产生上溢,计算机必须中断运算操作,进行溢出处理。当运算结果在0至最小正数之间时称为正下溢,在0至绝对值最小负数之间时称为负下溢,正下溢和负下溢统称下溢。... 查看详情

计算机组成原理王道考研2021第二章:数据的表示和运算--本章小结常见问题和易混淆知识点

...小结2.常见问题和易混淆知识点2.1如何表示一个数值数据?计算机中的数值数据都是二进制数吗?2.2在高级语言编程中所定义的unsigned/shortint/long/floatl/double型数据是怎么表示的?什么称为无符号整数的“溢出”?2.3如何判断一个浮点数... 查看详情

(计算机组成原理)第二章数据的表示和运算-第一节:字符与字符串在计算机中的表示详解

...与ASCII编码二:汉字的表示和编码三:字符串由于计算机内部职能识别和处理二进制代码,所以字符都必须按照一定的规则用一组二进制编码来表示一:字符编码与ASCII编码目前,国际上普遍采用的字符系统是7... 查看详情