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

快乐江湖 快乐江湖     2022-12-11     188

关键词:

一:机器数的定点表示

根据小数点的位置是否固定,在计算机中有两种数据格式表示方法:定点表示和浮点表示。浮点表示类似于科学计数法,将在第三节介绍

定点表示就是约定机器数中的小数点位置固定不变,小数点不再使用.表示,而是约定其位置。理论上,小数点位置固定在任何一位都可以,但是在计算机中通常采用两种简单的约定:将小数点的位置固定在数据的最高位之前,称其为定点小数;或固定在最低位之后,称其为定点整数

(定点整数)

(定点小数)

二:无符号数和有符号数的表示

(1)无符号数

无符号数是指整个机器字长的全部二进制位均为数值位,没有符号位,相当于数的绝对值; n n n位无符号数的能表示的数的**范围为 ( 0 , 2 n − 1 ) ∗ ∗ (0,2^n-1)** (0,2n1);通常 只有无符号整数,而没有无符号小数

(2)有符号数

在机器中,数的正和负是无法识别的,有符号数用"0"表示正,用"1"表示负,从而将符号数值化,通常约定二进制数位的最高位为符号位。

有符号数可以表示定点整数和定点小数,所以可以用原码、反码、补码三种方式表示定点整数和定点小数,还可以用移码表示定点整数。如果真值为 x x x,则用 [ x ] 原 [x]_原 [x] [ x ] 反 [x]_反 [x] [ x ] 补 [x]_补 [x] [ x ] 移 [x]_移 [x]分别表示真值对应的原码、反码、补码和移码。

三:原码、补码、反码和移码

(1)原码

原码是一种比较简单、直观的机器数表示法。用机器数的最高位表示该数的符号,其余的各位表示数的绝对值。其中0表示正,1表示负

比如 19.75 19.75 19.75这个数字,假设机器字长为8位

A:定点整数的原码表示

按照二进制的位权书写即可,不足位可以用0补齐,常写作 [ x ] 原 = 1 , 0010011 [x]_原=1,0010011 [x]=1,0010011

这里若机器字长为 n + 1 n+1 n+1位,那么原码整数的表示范围为
− ( 2 n − 1 ) ⩽ x ⩽ 2 n − 1 -(2^n-1) \\leqslant x \\leqslant 2^n-1 (2n1)x2n1

需要注意的是真值0有 + 0 +0 +0 − 0 -0 0两种形式

B:定点小数的原码表示

按照二进制的位权书写即可,不足位可以用0补齐,常写作 [ x ] 原 = 1.1100000 [x]_原=1.1100000 [x]=1.1100000

这里若机器字长为 n + 1 n+1 n+1位,那么原码小数的表示范围为
− ( 1 − 2 − n ) ⩽ x ⩽ 1 − 2 − n -(1-2^-n) \\leqslant x \\leqslant 1-2^-n (12n)x12n

需要注意的是真值0有 + 0 +0 +0 − 0 -0 0两种形式

(2)反码

反码是原码转换为补码的一个中间状态。

1:如果为正数,则反码与原码相同
例如+19D,其 [ x ] 原 = 0 , 0010011 [x]_原=0,0010011 [x]=0,0010011 [ x ] 反 = 0 , 0010011 [x]_反=0,0010011 [x]=0,0010011
例如+0.75D,其 [ x ] 原 = 0.1100000 [x]_原=0.1100000 [x]=0.1100000 [ x ] 反 = 0.1100000 [x]_反=0.1100000 [x]=0.1100000

2:如果为负数,则除符号位外,其他位按位取反
例如-19D,其 [ x ] 原 = 1 , 0010011 [x]_原=1,0010011 [x]=1,0010011 [ x ] 反 = 1 , 1101100 [x]_反=1,1101100 [x]=1,1101100
例如-0.75D,其 [ x ] 原 = 1.1100000 [x]_原=1.1100000 [x]=1.1100000 [ x ] 反 = 1.0011111 [x]_反=1.0011111 [x]=1.0011111

需要特别注意真值0的+0和-0这两种形式

[ + 0 ] 原 = 00000000 [+0]_原=00000000 [+0]=00000000 [ − 0 ] 原 = 10000000 [-0]_原=10000000 [0]=10000000
[ + 0 ] 反 = 00000000 [+0]_反=00000000 [+0]=00000000 [ − 0 ] 反 = 11111111 [-0]_反=11111111 [0]=11111111

(3)补码

1:如果为正数,则补码和原码一致
例如+19D,其 [ x ] 原 = 0 , 0010011 [x]_原=0,0010011 [x]=0,0010011 [ x ] 反 = 0 , 0010011 [x]_反=0,0010011 [x]=0,0010011 [ x ] 补 = 0 , 0010011 [x]_补=0,0010011 [x]=0,0010011
例如+0.75D,其 [ x ] 原 = 0.1100000 [x]_原=0.1100000 [x]=0.1100000 [ x ] 反 = 0.1100000 [x]_反=0.1100000 [x]=0.1100000 [ x ] 补 = 0.1100000 [x]_补=0.1100000 [x]=0.1100000

2:如果为负数,则补码=反码+1,需要注意进位
例如-19D,其 [ x ] 原 = 1 , 0010011 [x]_原=1,0010011 [x]=1,0010011 [ x ] 反 = 1 , 1101100 [x]_反=1,1101100 [x]=1,1101100 [ x ] 补 = 1 , 1101101 [x]_补=1,1101101 [x]=1,1101101
例如-0.75D,其 [ x ] 原 = 1.1100000 [x]_原=1.1100000 [x]=1.1100000 [ x ] 反 = 1.0011111 [x]_反=1.0011111 [x]=1.(计算机组成原理)第二章数据的表示和运算-第二节3:定点数的移位运算(算数移位逻辑移位和循环移位)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

(计算机组成原理)第二章数据的表示和运算-第四节1:算数逻辑单元和电路基本知识以及基本逻辑运算和全加器还有串行并行加法器

文章目录一:最基本的逻辑运算(1)与、或、非(2)与非、或非、异或、同或二:一位全加器三:串行加法器和并行加法器之前的学习我们一直在和数打交道,数字运算过程中一直离不开一个十分... 查看详情

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

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

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

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

(计算机组成原理)第四章指令系统-第二节1:指令寻址

文章目录一:顺序寻址二:跳跃寻址经过前面的学习我们知道,程序的运行实则是指令的运行,指令可以顺序执行也可以跳跃执行,那么这个实则是指令的寻址问题指令的寻址其实我们在前面的学习中就已经接触过了。如下,我... 查看详情

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

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

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

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

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

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