[408计算机组成原理] 第二章 数据的表示和运算 2.1

[408计算机组成原理] 第二章 数据的表示和运算 2.1_第1张图片

一、无符号数和有符号数

在学习本届内容开始之前,是默认学过二进制、八进制、十进制和十六进制之间的转化和表示的;在计算中,我们都知道其内部都是一连串的01二进制数字,而这一部分的内容我们就是要研究如何将我们实际生活中数字以二进制形式存储在计算中,同时在计算中实现数的运算(加减乘除等);接下去我们首先学习的是数字在计算机中的几种不同的表现形式。

1)无符号数字

顾名思义,就是在计算中这个数字没有符号,则其实也就是默认为该数只能是正数,寄存器的位数就可以直接反应出数值能表示范围的大小

[408计算机组成原理] 第二章 数据的表示和运算 2.1_第2张图片
对于8位的寄存器,该8位全部用于表示数值,所以能表示的范围就是0到255=28−1255=2^{8}-1255=281;对于16位寄存器,范围就是0到65535=216−165535=2^{16}-165535=2161

2)有符号数

就是所表示的数值具有符号位,即有符号数,那在机器中又如何表示符号呢?由于正负号就两个,所以也可以使用01来表示正负号,我们可以先来看一下一些真值如何在机器中表示。

①真值和机器值

[408计算机组成原理] 第二章 数据的表示和运算 2.1_第3张图片

不难看出,只要在计算机中规定好数值的第一位是数值的符号位,0表示正数,1表示负数;同时对于小数的表示,其小数点是隐含在符号位的后面,对于整数,其小数点隐含在数值的尾部,所以对于给出一个有符号数,对于其表示为计算机中存储的数值而言,操作很简单,计算中只要规定符号位在首部,0表示正数,1表示负数。

②原码

原码表示法如下,其定义如图所示,其实我们在理解原码表示法的时候完全没有必要通过给出的定义来理解原码表示法,其实所谓的原码表示法,就是上面刚学过的将一个真值表示为机器数,也就是将符号位用01来表示。

[408计算机组成原理] 第二章 数据的表示和运算 2.1_第4张图片
对于+1110 其原码就是将+用0来表示即其原码为[x]原=0,1110[x]_{原}=0,1110[x]=0,1110,同时呢我们在书写的时候,应加上一个,号,以区分开符号位和数值,而实际在计算中存储的时候是没有,的,直接规定哪一位为符号位。

尝试来看下定义(假设寄存器个数为n+1位,n位是数值位)
①:对于真值的范围在[0,2n)[0,2^n)[0,2n)之间,也就是说当所要表示的值在寄存器所能表示的最大范围内且是大于等于零的数,该原码就可以表示为0,x0,x0,x的形式,也就是符号位取0,数值位抄下来。
②:对于真值的范围在(−2n,0](-2^n,0](2n,0],也就是说所要表示的真值要大于所能表示的最小值且是小于等于零的,则该原码就可以表示为[x]原=2n−x[x]_{原}=2^n-x[x]

你可能感兴趣的:([408计算机组成原理] 第二章 数据的表示和运算 2.1)