《计算机组成原理》学习笔记。计算机中的信息表示。
信息在计算机中通常分为数据信息和控制信息两大类。数据信息又可分为数值型信息和非数值型信息;控制信息是控制计算机工作的信息。
数制
常用的数制有二进制,八进制,十进制,十六进制。
计算机使用的是只包含0和1的二进制。计算机中一个字节通常等于8位二进制。
二-十进制
二-十进制采用4位二进制数表示一位十进制数,这种编码方式又称为BCD(Binary Coded Decimal)码,又称为“8421码”。
进制转换
十进制整数转二进制整数
- 减权定位法
- 除基取余法
十进制小数转二进制小数
- 减权定位法
- 乘基取整法
无符号数和有符号数
计算机中的数,有两种用来计算的模式,即无符号数和有符号数。
无符号数
不含有符号位,每一位都用来保存数值。
有符号数
通常用最高位来表示符号位的数。可以用二进制的一个位来表示符号:0为“正”,1为“负”。
为了能让符号位也参加运算,需要将编码进行处理,构成了4种编码表示方式:原码,补码,反码和移码。
数的定点表示和浮点表示
计算机中根据小数点的位置是否固定,可以将计算机的数分为两大类,定点表示和浮点表示。
无符号定点整数
假设无符号定点整数由n+1位表示,则该整数的表示范围为 0~(2n+1-1) 。
带符号定点整数
带符号定点整数通常用补码来表示,也有用原码来表示的情况。
同样假设带符号定点整数由n+1位表示。
原码表示范围: -(2n-1)~2n-1 。
补码表示范围: -2n~2n-1 。
带符号定点小数
带符号位的定点小数是一个纯小数,可以用原码表示也可以用补码表示。
假设带符号定点小数的代码序列位: X0.X1X2…Xn 。
补码表示范围: -1~1-2n 。
定点数的表示方法简单,但在有限位数的表示中,范围和精度通常是不可兼得的。
浮点表示
浮点数是一种小数点位置可根据需求浮动的数。
N = ±RE ✖️M
上式中:N表示真值,M表示尾数,RE表示比例因子。
通常对于浮点格式,R是隐含约定固定不变的,因此浮点数的表达式中需要提供E与M两个部分(包括符号)。
E是阶码,可用补码或者移码的形式表示,M是尾数,可用补码或者原码的形式表示。
浮点数都是近似表示,精度由尾数决定,范围由R,E决定。为了能提高浮点数的精度,尽可能将有效为占满可用位,通常采用规格化的方式来表示,要求尾数满足条件:
1/R≤|M|<1
为了满足条件,通常采用两种方式,尾数数右移1位,阶码加1,这种方式称为右规;第二种是将尾数左移1位,阶码减1。
移码是专门用来表示浮点数阶码的码制。移码相当于将真值沿着数轴正方向平移2m,所以称为移码。用移码来表示阶码,能更容易地比较出阶码的大小。
IEEE 754 标准浮点格式
以32位浮点数为例,最高位S0是数符,接下来8位是阶码,采用的是移码表示,偏置为127,剩下的23位为尾数,是一个纯小数,数符已在代码的最高位表示。约定尾数的最高位位1,约定的最高位并不会出现在代码中,因此实际上尾数为24位。
字符数据表示
ASCII 码
美国信息交换标准码(American Standard Code for Information Interchange)简称ASCII 码。
汉字编码
GB 2312字符集,使用两个字节来表示一个汉字字符编码,收录6763个汉字,存储在一个94×94的矩阵中,矩阵的行称为区,列称为位,这样其中的一个汉字就可以称为处于某区某位中,与国际的交换码有简单的对应关系。
详细的内容请查阅相关资料。