第2章 计算机系统中的数据表示
2.1 数据编码
2.1.1 数值数据的编码
1.概述
1)进位计数制及其转换
十进制:字母D标记或不加标识
二进制:字母B标识
八进制:字母O标识
十六进制:字母H标识
各种数值数据在计算机中表示的形式称为机器数。机器数对应的实际数值称为数的真值。
2)无符号数与有符号数
(1)无符号数
8位:0~255
16位:0~65535
(2)有符号数
正0负1
3)定点数与浮点数
(1)定点数
约定小数点的位置固定不变。
分为两种:
定点整数(纯整数,小数点在最低有效数值位之后),表示范围随n的增大增大
定点小数(纯小数,小数点在最高有效数值位之前),表示范围不变(-1,1),精度随n增大增大
(2)浮点数
尾数,阶码
2.原码
(1)整数原码
(2)小数原码
①0有两种表示形式
②负数时,真值越大,其对应的编码越小
③无法表示1,-1
④负数的编码>正数的编码
3.补码
1)补数的概念
mod 模
2)补码的定义
(1)整数补码。
正数:补码同原码
负数:4种方式
X = - 35
①X = 35 的原码表示,包括符号位在内的各位取反,最低位+1
②X = -35的原码表示,不包括符号位各位取反,最低位+1
③X = 35 的原码表示,从最低位逐位向高位寻找,找到第一个1不变,以后各位1变0,0变1直至符号位。(Q:符号位变不变?)
④定义
(2)小数补码
①0只有一种表示方式
②不论是正数还是负数时,真值越大,编码越大
③能表示-1,不能表示1
④负数的编码>正数的编码
3)补码的特点
(1)0的表示是唯一的
(2)变形码
保护最高位。
(3)求补运算
补码求补,相当于在前面加一个负号
补码求原码时,依旧执行按位取反+1的操作。【针对于负数而言】
以上针对于负数,对正数而言,原码同补码,位数拓展加0即可。
(4)简化加减法
[-X]补 = [ [X]补]求补
(5)算数或逻辑左移
不超出所规定的数值范围,最高位移出。
(6)算数右移
包括最高位的数据顺序右移。
4.反码
1)反码的定义
(1)整数反码
(2)小数反码
①0有两种表现形式
②不能表示-1,1
③负数编码比正数大
④真值增大,编码增大
5.移码
1)移码的由来
有符号的比较转为无符号的比较
2)移码的定义(定点整数)
①能表示 -2n-1,不能表示2n-1
②真值增大,编码增大
③负数编码比正数编码小
3)特点
补码符号位取反