【注】本总结中的图片都来源于b站刘宏伟老师计算机组成原理视频
一、无符号数
无符号数,指数没有符号的区别,例如:8位的寄存器中可以存放的数为0~255。结合下图可以理解。
二、有符号数
有符号数,指有符号的区别,即正负区别。而在计算机的寄存器或存储器中均以二进制的方式进行存储,因此用一位符号位来表示正负的符号。例如:8位的寄存器中,除去一位作为符号位,则剩下7位作为数值位,即表示的数为-127~0、0~127(原码的表示)。
带正负号的为正值,而机器数中只有二进制01,如下图所示。
1.原码表示法
原码表示法,符号位采用0正1负的形式表示,其余数值位与真值相同仍相同。即+1110其原码就为0,1110,-1110其原码就为1,1110,。原码的取数范围为-127~0,0~127,。
小数的定义如下图所示。
【注】简单理解就是(符号位+真值)。原码中0的表示是有两种的0,0000跟1,0000都表示0
2.补码表示法
补码的理解我们可以通过时钟的概念来进行理解。例如,在6点的时候,我们拨动表盘,希望到3点,我们可以往逆时针方向拨动3个小时,当然我们也可以往顺时针拨动9个小时,因此在一个有模的形式下,我们可以通过对模的加减从而来得到我们想要得到的数。结合下图进行理解。
结论:一个负数加上“模”即得到该负数的补数,一个正数和一个负数互为补数时,其绝对值之和即为模数。如图所示:
补码的定义
【注】补码简单记忆就是,正数不变,负数按位取反,末位加一。补码整数表示的范围为-128~127,其中0的表示是唯一的。机器进行运算处理都是采用补码进行。
与原码的对比可以如下所示:
3.反码表示法
反码,顾名思义就是原码的反过来,其定义可以如下图所示。
【注】反码简单来说就是正数不变,负数按位取反。其0,0000表示+0,1,1111表示-0,因此其正负0也是两种表示。
4.移码表示法
移码表示对数进行平移2的n次方个位置,即加上2的n次方。定义结合下图进行理解。
【注】移码简单表示就是符号位为0负1正,正数不变,负数按位取反末位加一。移码通常是表示在浮点数规格化的指数上,其代表着小数的移动的位数。
下面两个表格是对无符号数跟有符号数以及有符号数的各种不同表示在八位寄存器中表示数的比较。
三、数的定点表示
定点指小数点的位置固定表示,结合下图进行理解。
四、数的浮点表示
浮点数表示,将数通过阶码数、符号和尾数进行表示,如下图所示。
尾数部分的数值位越多表示数的精度越高,而阶码表示的是相对应的移位。
浮点数的表示范围可如下图所示。
结合以下例子对上图的相关进行理解。
再者结合以下例子进行理解具体数值转换成浮点数的过程。
IEEE754标准
这个标准是对浮点数的阶码、尾数进行规格化的一种标准化。具体标准如下图所示。