第二章 数据的表示和运算
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第二章 数据的表示和运算
2.1 数制与编码 2.2 定点数的表示与运算 2.3 浮点数的表示与运算
2.4 算术逻辑单元ALU
2013-8-3
§2.1 数制与编码
1、常用记数制及其转换
十进制——符合人们的习惯(以十为底,逢十进一;共有0-9十 个数字符号)。 二进制——便于物理实现(以2为底,逢2进位;只有0和1两个 符号)。 十六进制——便于识别、书写(以16为底,逢16进位;有0--9 及A--F共16个数字符号 )。 二进制:数字后面加B, 如1001B 八进制:数字后面加O, 如1001O 十进制:一般不加, 如1001 十六进制:数字后面加H , 如1001H
H L 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 000 NUL SOH STX ETX EOT ENG ACK BEL BS HT LF VT FF CR SO SI 001 DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US 010 SP ! " # $ % & ' ( ) * + , . / 011 0 1 2 3 4 5 6 7 8 9 : ; < = > ? 100 @ A B C D E F G H I J K L M N O 101 P Q R S T U V W X Y Z [ \ ] 110 ` a b c d e f g h i j k l m n o 111 p q r s t u v w x y z { | } ~ DEL
2013-8-3
2.2 定点数的表示和运算
计算机常用的数据表示格式有两种:
定点表示:小数点位置固定
所有数据的小数点位置固定不变 理论上位置可以任意,但实际上将数据表示有两种方法:
纯小数——定点小数 纯整数——定点整数
定点数表示分类:
带符号数 不带符号数
浮点表示:小数点位置不固定
2013-8-3
3)循环冗余校验码(CRC
Cyclic Redundancy Check)
a. 编码格式 循环冗余校验码由两部分组成,左边是信息位,右边是校验位;若 总的循环冗余校验码的长度为n位,信息位是k位,则校验位就占n-k位。 故该校验码也称(n,k)码。附加校验位是由信息码产生的,校验位越长, 校验能力越强。
2013-8-3
3)反码表示法
定义:正数的表示与原、补码相同,负数的补码符号位为1,数 值位是将原码的数值按位取反,就得到该数的反码表示。 零有正零和负零之分,表示范围与原码一致。 对于负数:[x ]补=[x ]反+2-n(定点小数) [x ]补=[x ]反+1(定点整数)
4)移码表示法
定点整数定义 [x]移=2n+x 2n >x≥-2n ,n为数值位 表示范围:00000000~11111111(-2n~2n-1) 例:+1011111 则:原码为 01011111 补码为01011111 反码为01011111 移码为 11011111 特点:移码和补码尾数相同,符号位相反。 表示范围: -2n~2n-1
b.校验码的生成 ⑴ 信息码的权展开式乘以Xn-k 。 ⑵ 给出生成多项式 g(x)。(由数学算法给定) 例如X.25协议中,数据链路层传送信息时需要附加16位检验位,其生成多 项式为:g(x)=X16+X12+X5+1。 生成多项式中最高次幂数是检验位的位数,最低次幂必须为0。 4位检验位的生成多项式为:g(x)=X4+X3+X2+1。 ⑶ 第⒈步得到的多项式除以生成多项式,余数就是检验位的权展开式。 注意:两多项式相除时,因为除法运算是模2运算,每一位相减是按位减, 不发生借位。
2013-8-3
2.2.1 定点数的表示
1)定点小数 x0 . x1 x2 x3 … xn-1 xn
数值位 符号位 小数点固定于符号位之后,不需 专门存放位置
表示范围:(原码)
x=0.00...0 x=1.00...0 x=0.11...1 x=0 x=1-2-n 正0和负0都是0 最大
x=0.00...01
2013-8-3
3、十进制数的表示——BCD码
用4位二进制数表示一位十进制数,分为压缩和非压缩两种格式。 ⑴ 8421码 8421码是二进制编码各位的权分别是8、4、2、1,因此叫8421码。 例如:十进制数4256的BCD码表示为:0100 0010 0101 0110 B ⑵ 2421码 2421码是二进制编码各位的权分别是2、4、2、1,因此叫2421码。 (3) 余3码:把每个8421码都加上0011(即3)。
2013-8-3
1)原码表示法
定点小数: 例:x=+0.11001110 [x]原=0.11001110 [-x]原=1.11001110 定点整数: 例:x=+11001110 [x]原=011001110 [-x]原=111001110 原码特点:
有正0和负0之分 范围 1 - 2n ~ 2n – 1 (定点整数) 表示简单,易于同真值之间进行转换,实现乘除运算规则简 单,但进行加减运算十分麻烦。
接收方收到后,三个校验和按以下公式求得:
S2=I4⊕I3⊕I2⊕P3
S1=I4⊕I3⊕I1⊕P2 S0=I4⊕I2⊕I1⊕P1 若S2S1S0=0,则说明传送无错,即接收的代码是正确的;若S2S1S0≠0,则说明传送 有错,S2S1S0的十进制数值就是出错的位号,故将S2S1S0称为指误字。
汉明码只能纠正1位错误,对于2位及2位以上出错,只能查出是否出错但不能定位。
注:H 表示高 3 位,L 表示低 4 位。
符号数据: ASCII码使得字符信息用数据表示; 特点:用一个字节来表示,低7位用来编码(128),最高位可作为为 校验位;多个字符组合在一起就构成了字符串。
2013-8-3
5、校验码
引入:信息传输和处理过程中受到干扰和故障,容易出错。 解决方法:在有效信息中加入一些冗余信息(校验位)。 数据校验码:带有发现某些错误或带有自动改错能力的数 据编码。常用的代码校验方法有奇偶校验、汉明校验和循 环冗余校验三种方法。 1) 奇偶校验码:在每个传送码的左边或右边加上1位奇偶 校验位“0”或“1”,若是奇校验位,就把每个编码中1的个数 凑成奇数;若是偶校验位,就把每个编码中1的个数凑成偶 数。
编码规则: 1)每个校验位Pi在汉明码 中被分到位号2i-1的位置 上,其余各位为信息位。 2)每一位Ii由多个校验位 校验,其关系是被校验 的每一位位号等于校验 它的各校验位权值之和。
2013-8-3
汉明码的构成和纠错原理
例:8421码是4位编码,其N值为4,则其K值为3。设信息位为I4、I3、 I2、I1,按8421码编码,校验位是P3、P2、P1。一种8421汉明码如 下表所列。
x=1.00...01 x=1.11...1
x=2-n
x=-2-n x=-(1-2-n )
最接近0的正数
最接近0的负数 最小
2013-8-3
2)定点整数 x0 x1 x2 x3 … xn-1 xn .
符号 表示范围 :(原码)
2013-8-3
例:将(136)D转换为二进制数。 2 136 余数(结果) 低位
2
2 2 2 2 2 2
68 ---------- 0
34 ---------- 0 17 ---------- 0 8 ---------- 1 4 ---------- 0 2 ---------- 0 1 ---------- 0 0 ---------- 1 高位 转换结果:(136)D=(10001000)B
例:将(0.625)D转换为二进制数。
0.625 * 2 取整: 高位
1.25 * 2
0.5 * 2
1.0 低位
转换结果:(0.625)D = (0.101)B
2013-8-3
2、 真值与机器数
真值:一般书写的数。 机器码:机器中表示的数, 要解决在计算机内部数的 正、负符号和小数点运算问题。 原码:符号位为0表示正数,为1表示负数,数值 部分用二进制数的绝对值表示的方法。 反码: 正数的反码就是这个数本身,而负数的反 码是符号位为1,数值部分等于其绝对值各位求反。 补码:正数的补码与其原码相同;负数的补码是先 把其原码除符号外的各位先求反,然后在最低位加 1。 移码:移码也叫增码或偏码,常用于表示浮点数中 的阶码。
2013-8-3
【 例 】 有 一 个 (7,3) 码 ( 整 个 编 码 7 位 , 其 中 信 息 位 3 位 ) , 其 生 成 多 项 式 为 X4+X3+X2+1,令信息码为110,请求出其CRC检验码。
解:① 把信息码110写成基数为X的权展开式Leabharlann Baidu2+X(110=22+21+0) ② 给定的生成多项式为g(x)=X4+X3+X2+1。 ③ 信息码的权展开式乘以Xn-k 即:(X2+X)· 7-3=X6+X5 X ④ 第③步所得的多项式除以生成多项式,得到检验位的多项式
2013-8-3
2)补码表示法
定义:正数的补码就是正数的本身,负数的补码是原负数加 上模。 定点小数x0.x1x2…..xn 溢出量为2,以2为模 定点整数x0x1x2…..xn 溢出量为2n+1,以2n+1为模 例: x= -0.1011 [x]补=10+x=10.0000-0.1011=1.0101 补码特点: 高位表明正负,无正零和负零之分 最大的优点就是将减法运算转换成加法运算。 [X]补-[Y]补= [X]补+[-Y]补 范围-2n~2n-1(定点整数,n为数值位) 变形补码(双符号补码) 为了机器判断溢出而设定
得到检验码的多项式为X3+1,因此可求得检验码为23+1=(1001)2。 ⑤ 最后得到7位CRC检验码为 1101001。
2013-8-3
c.CRC码的检验方法
CRC码传送到接收方后,接收方就用CRC码除以生成多项式来检验。 如果余数为0,说明传送正确;如果余数不为0,则传送出错。例如上面 例子,110的CRC码为1101001,用1101001除以生成多项式11101,余数 为0,传送正确。
2013-8-3
数制转换:
a. 非十进制数到十进制数的转换 规则:按相应进位计数制的权表达式展开,再按十进制求 和。
例: 13FAH = (?)10
b. 十进制 → 二(或n)进制的转换: 整数部分:除2(或n)取余; 小数部分:乘2 (或n)取整。 c. 二进制与十六进制间的转换 二进制 → 十六进制:4位化1位 例: 10110001001.110 = (?)H 0101 1000 1001.1100 5 8 9 . C 注意:位数不够时要补0 十六进制 → 二进制:1位化4位
2013-8-3
因为:
P3 P2 P1 I1:0 1 1
P3 P2 P1 I2:1 0 1
P3 P2 P1 I3:1 1 0
P3 P2 P1 I4:1 1 1
校验位的取值按如下公式求得: P3=I4⊕I3⊕I2 P2=I4⊕I3⊕I1 P1=I4⊕I2⊕I1 P3 应满足I4、I3、I2、P3为偶检验 P2 应满足I4、I3、I1、P2为偶检验 P1 应满足I4、I2、I1、P1为偶检验
当用BCD码来按十进制数的规律进行运算时,要对运算结果进行调 整,称为“十进制调整” 例如: 4+3 = 0100 + 0011 = 0111 (×) 4+8 = 0100 + 1000 = 1100 0001 0010 (√)
2013-8-3
4、字符和字符串(非数值)的表示方法
ASCII码—美国标准信息交换代码 ASCII 字符表
奇偶校验码的特点:能发现一位或奇数个位出错,而无定
2013-8-3
2)汉明码
原理:以奇偶校验为基础的,在数据中加入几个检验位,并把 数据的每一个二进制位分配在几个奇偶校验组中。不但能发现 错误,还能指出位置。 校验位的位数K和信息位的位数N应满足下述关系:
2K-1≥N+K (汉明不等式)
N值和K值的对应关系表
2.1 数制与编码 2.2 定点数的表示与运算 2.3 浮点数的表示与运算
2.4 算术逻辑单元ALU
2013-8-3
§2.1 数制与编码
1、常用记数制及其转换
十进制——符合人们的习惯(以十为底,逢十进一;共有0-9十 个数字符号)。 二进制——便于物理实现(以2为底,逢2进位;只有0和1两个 符号)。 十六进制——便于识别、书写(以16为底,逢16进位;有0--9 及A--F共16个数字符号 )。 二进制:数字后面加B, 如1001B 八进制:数字后面加O, 如1001O 十进制:一般不加, 如1001 十六进制:数字后面加H , 如1001H
H L 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 000 NUL SOH STX ETX EOT ENG ACK BEL BS HT LF VT FF CR SO SI 001 DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US 010 SP ! " # $ % & ' ( ) * + , . / 011 0 1 2 3 4 5 6 7 8 9 : ; < = > ? 100 @ A B C D E F G H I J K L M N O 101 P Q R S T U V W X Y Z [ \ ] 110 ` a b c d e f g h i j k l m n o 111 p q r s t u v w x y z { | } ~ DEL
2013-8-3
2.2 定点数的表示和运算
计算机常用的数据表示格式有两种:
定点表示:小数点位置固定
所有数据的小数点位置固定不变 理论上位置可以任意,但实际上将数据表示有两种方法:
纯小数——定点小数 纯整数——定点整数
定点数表示分类:
带符号数 不带符号数
浮点表示:小数点位置不固定
2013-8-3
3)循环冗余校验码(CRC
Cyclic Redundancy Check)
a. 编码格式 循环冗余校验码由两部分组成,左边是信息位,右边是校验位;若 总的循环冗余校验码的长度为n位,信息位是k位,则校验位就占n-k位。 故该校验码也称(n,k)码。附加校验位是由信息码产生的,校验位越长, 校验能力越强。
2013-8-3
3)反码表示法
定义:正数的表示与原、补码相同,负数的补码符号位为1,数 值位是将原码的数值按位取反,就得到该数的反码表示。 零有正零和负零之分,表示范围与原码一致。 对于负数:[x ]补=[x ]反+2-n(定点小数) [x ]补=[x ]反+1(定点整数)
4)移码表示法
定点整数定义 [x]移=2n+x 2n >x≥-2n ,n为数值位 表示范围:00000000~11111111(-2n~2n-1) 例:+1011111 则:原码为 01011111 补码为01011111 反码为01011111 移码为 11011111 特点:移码和补码尾数相同,符号位相反。 表示范围: -2n~2n-1
b.校验码的生成 ⑴ 信息码的权展开式乘以Xn-k 。 ⑵ 给出生成多项式 g(x)。(由数学算法给定) 例如X.25协议中,数据链路层传送信息时需要附加16位检验位,其生成多 项式为:g(x)=X16+X12+X5+1。 生成多项式中最高次幂数是检验位的位数,最低次幂必须为0。 4位检验位的生成多项式为:g(x)=X4+X3+X2+1。 ⑶ 第⒈步得到的多项式除以生成多项式,余数就是检验位的权展开式。 注意:两多项式相除时,因为除法运算是模2运算,每一位相减是按位减, 不发生借位。
2013-8-3
2.2.1 定点数的表示
1)定点小数 x0 . x1 x2 x3 … xn-1 xn
数值位 符号位 小数点固定于符号位之后,不需 专门存放位置
表示范围:(原码)
x=0.00...0 x=1.00...0 x=0.11...1 x=0 x=1-2-n 正0和负0都是0 最大
x=0.00...01
2013-8-3
3、十进制数的表示——BCD码
用4位二进制数表示一位十进制数,分为压缩和非压缩两种格式。 ⑴ 8421码 8421码是二进制编码各位的权分别是8、4、2、1,因此叫8421码。 例如:十进制数4256的BCD码表示为:0100 0010 0101 0110 B ⑵ 2421码 2421码是二进制编码各位的权分别是2、4、2、1,因此叫2421码。 (3) 余3码:把每个8421码都加上0011(即3)。
2013-8-3
1)原码表示法
定点小数: 例:x=+0.11001110 [x]原=0.11001110 [-x]原=1.11001110 定点整数: 例:x=+11001110 [x]原=011001110 [-x]原=111001110 原码特点:
有正0和负0之分 范围 1 - 2n ~ 2n – 1 (定点整数) 表示简单,易于同真值之间进行转换,实现乘除运算规则简 单,但进行加减运算十分麻烦。
接收方收到后,三个校验和按以下公式求得:
S2=I4⊕I3⊕I2⊕P3
S1=I4⊕I3⊕I1⊕P2 S0=I4⊕I2⊕I1⊕P1 若S2S1S0=0,则说明传送无错,即接收的代码是正确的;若S2S1S0≠0,则说明传送 有错,S2S1S0的十进制数值就是出错的位号,故将S2S1S0称为指误字。
汉明码只能纠正1位错误,对于2位及2位以上出错,只能查出是否出错但不能定位。
注:H 表示高 3 位,L 表示低 4 位。
符号数据: ASCII码使得字符信息用数据表示; 特点:用一个字节来表示,低7位用来编码(128),最高位可作为为 校验位;多个字符组合在一起就构成了字符串。
2013-8-3
5、校验码
引入:信息传输和处理过程中受到干扰和故障,容易出错。 解决方法:在有效信息中加入一些冗余信息(校验位)。 数据校验码:带有发现某些错误或带有自动改错能力的数 据编码。常用的代码校验方法有奇偶校验、汉明校验和循 环冗余校验三种方法。 1) 奇偶校验码:在每个传送码的左边或右边加上1位奇偶 校验位“0”或“1”,若是奇校验位,就把每个编码中1的个数 凑成奇数;若是偶校验位,就把每个编码中1的个数凑成偶 数。
编码规则: 1)每个校验位Pi在汉明码 中被分到位号2i-1的位置 上,其余各位为信息位。 2)每一位Ii由多个校验位 校验,其关系是被校验 的每一位位号等于校验 它的各校验位权值之和。
2013-8-3
汉明码的构成和纠错原理
例:8421码是4位编码,其N值为4,则其K值为3。设信息位为I4、I3、 I2、I1,按8421码编码,校验位是P3、P2、P1。一种8421汉明码如 下表所列。
x=1.00...01 x=1.11...1
x=2-n
x=-2-n x=-(1-2-n )
最接近0的正数
最接近0的负数 最小
2013-8-3
2)定点整数 x0 x1 x2 x3 … xn-1 xn .
符号 表示范围 :(原码)
2013-8-3
例:将(136)D转换为二进制数。 2 136 余数(结果) 低位
2
2 2 2 2 2 2
68 ---------- 0
34 ---------- 0 17 ---------- 0 8 ---------- 1 4 ---------- 0 2 ---------- 0 1 ---------- 0 0 ---------- 1 高位 转换结果:(136)D=(10001000)B
例:将(0.625)D转换为二进制数。
0.625 * 2 取整: 高位
1.25 * 2
0.5 * 2
1.0 低位
转换结果:(0.625)D = (0.101)B
2013-8-3
2、 真值与机器数
真值:一般书写的数。 机器码:机器中表示的数, 要解决在计算机内部数的 正、负符号和小数点运算问题。 原码:符号位为0表示正数,为1表示负数,数值 部分用二进制数的绝对值表示的方法。 反码: 正数的反码就是这个数本身,而负数的反 码是符号位为1,数值部分等于其绝对值各位求反。 补码:正数的补码与其原码相同;负数的补码是先 把其原码除符号外的各位先求反,然后在最低位加 1。 移码:移码也叫增码或偏码,常用于表示浮点数中 的阶码。
2013-8-3
【 例 】 有 一 个 (7,3) 码 ( 整 个 编 码 7 位 , 其 中 信 息 位 3 位 ) , 其 生 成 多 项 式 为 X4+X3+X2+1,令信息码为110,请求出其CRC检验码。
解:① 把信息码110写成基数为X的权展开式Leabharlann Baidu2+X(110=22+21+0) ② 给定的生成多项式为g(x)=X4+X3+X2+1。 ③ 信息码的权展开式乘以Xn-k 即:(X2+X)· 7-3=X6+X5 X ④ 第③步所得的多项式除以生成多项式,得到检验位的多项式
2013-8-3
2)补码表示法
定义:正数的补码就是正数的本身,负数的补码是原负数加 上模。 定点小数x0.x1x2…..xn 溢出量为2,以2为模 定点整数x0x1x2…..xn 溢出量为2n+1,以2n+1为模 例: x= -0.1011 [x]补=10+x=10.0000-0.1011=1.0101 补码特点: 高位表明正负,无正零和负零之分 最大的优点就是将减法运算转换成加法运算。 [X]补-[Y]补= [X]补+[-Y]补 范围-2n~2n-1(定点整数,n为数值位) 变形补码(双符号补码) 为了机器判断溢出而设定
得到检验码的多项式为X3+1,因此可求得检验码为23+1=(1001)2。 ⑤ 最后得到7位CRC检验码为 1101001。
2013-8-3
c.CRC码的检验方法
CRC码传送到接收方后,接收方就用CRC码除以生成多项式来检验。 如果余数为0,说明传送正确;如果余数不为0,则传送出错。例如上面 例子,110的CRC码为1101001,用1101001除以生成多项式11101,余数 为0,传送正确。
2013-8-3
数制转换:
a. 非十进制数到十进制数的转换 规则:按相应进位计数制的权表达式展开,再按十进制求 和。
例: 13FAH = (?)10
b. 十进制 → 二(或n)进制的转换: 整数部分:除2(或n)取余; 小数部分:乘2 (或n)取整。 c. 二进制与十六进制间的转换 二进制 → 十六进制:4位化1位 例: 10110001001.110 = (?)H 0101 1000 1001.1100 5 8 9 . C 注意:位数不够时要补0 十六进制 → 二进制:1位化4位
2013-8-3
因为:
P3 P2 P1 I1:0 1 1
P3 P2 P1 I2:1 0 1
P3 P2 P1 I3:1 1 0
P3 P2 P1 I4:1 1 1
校验位的取值按如下公式求得: P3=I4⊕I3⊕I2 P2=I4⊕I3⊕I1 P1=I4⊕I2⊕I1 P3 应满足I4、I3、I2、P3为偶检验 P2 应满足I4、I3、I1、P2为偶检验 P1 应满足I4、I2、I1、P1为偶检验
当用BCD码来按十进制数的规律进行运算时,要对运算结果进行调 整,称为“十进制调整” 例如: 4+3 = 0100 + 0011 = 0111 (×) 4+8 = 0100 + 1000 = 1100 0001 0010 (√)
2013-8-3
4、字符和字符串(非数值)的表示方法
ASCII码—美国标准信息交换代码 ASCII 字符表
奇偶校验码的特点:能发现一位或奇数个位出错,而无定
2013-8-3
2)汉明码
原理:以奇偶校验为基础的,在数据中加入几个检验位,并把 数据的每一个二进制位分配在几个奇偶校验组中。不但能发现 错误,还能指出位置。 校验位的位数K和信息位的位数N应满足下述关系:
2K-1≥N+K (汉明不等式)
N值和K值的对应关系表