![第2章计算机中信息的表示_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-1/7/dbed6a80-adbc-45b4-b2f1-a9bbc539bc71/dbed6a80-adbc-45b4-b2f1-a9bbc539bc711.gif)
![第2章计算机中信息的表示_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-1/7/dbed6a80-adbc-45b4-b2f1-a9bbc539bc71/dbed6a80-adbc-45b4-b2f1-a9bbc539bc712.gif)
![第2章计算机中信息的表示_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-1/7/dbed6a80-adbc-45b4-b2f1-a9bbc539bc71/dbed6a80-adbc-45b4-b2f1-a9bbc539bc713.gif)
![第2章计算机中信息的表示_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-1/7/dbed6a80-adbc-45b4-b2f1-a9bbc539bc71/dbed6a80-adbc-45b4-b2f1-a9bbc539bc714.gif)
![第2章计算机中信息的表示_第5页](http://file3.renrendoc.com/fileroot_temp3/2022-1/7/dbed6a80-adbc-45b4-b2f1-a9bbc539bc71/dbed6a80-adbc-45b4-b2f1-a9bbc539bc715.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第2章 计算机中信息的表示与运算 2. 1 数据的表示数据的表示 2. 2 定点数的运算定点数的运算 2. 3 浮点数的运算浮点数的运算 2. 4 面向错误检测与纠错的数据编码面向错误检测与纠错的数据编码2. 5 字符的表示字符的表示 2. 6 面向存储与传输的数据编码面向存储与传输的数据编码 2022-5-181第2章 计算机中信息的表示与运算 2. 1 数据的表示数据的表示 问题问题 1 如何表示如何表示“正正/负负”? 问题问题 2 如何表示如何表示“小数点小数点”? 用“0”表示“+”用“1”表示“” 符号数字化的数叫符号数字化的数叫机器数机器数,原先的数叫,原先的数叫真值真值。 默认
2、小数点在数值的最前方或者最后方。默认小数点在数值的最前方或者最后方。 这样得到的数叫这样得到的数叫定点数定点数, 小数点被默认位于数值前部的叫小数点被默认位于数值前部的叫定点小数定点小数, 被默认位于数值后部的叫被默认位于数值后部的叫定点整数定点整数。2022-5-182带符号的数 符号数字化的数+ 0.10110 1011小数点的位置+ 11000 1100小数点的位置 11001 1100小数点的位置 0.10111 1011小数点的位置真值 机器数 机器数与真值约定:最高位MSB为符号位2022-5-183第2章 计算机中信息的表示与运算 2. 1. 1 定点数的表示定点数的表示定点小数
3、与定点整数定点小数与定点整数 若默认小数点在符号位与数值最高位之间,则计若默认小数点在符号位与数值最高位之间,则计算机实现的是定点小数;若默认小数点在数值最低算机实现的是定点小数;若默认小数点在数值最低位之后,则计算机实现的是定点整数。位之后,则计算机实现的是定点整数。1. 原码(符号原码(符号-绝对值)表示法绝对值)表示法X = + 1011010B,X原原 = 0, 1011010B;Y = 1011010B,Y原原 = 1, 1011010B;Z = + 0.1101010B,Z原原 = 0. 1101010B;K = 0.1101010B,K原原 = 1. 1101010B。 书写时,
4、在符号书写时,在符号位与数值最高位位与数值最高位之间加之间加“,”表示数表示数据是定点整数据是定点整数 书写时,在符号位书写时,在符号位与数值最高位之间与数值最高位之间加加“.”表示数据是表示数据是定点小数定点小数 计算机并不存计算机并不存储储“,”/ “.” 2022-5-184第2章 计算机中信息的表示与运算 2. 1. 1 定点数的表示定点数的表示【例【例2-1】 设机器字长为设机器字长为8位,位,X = 0101010B, Y = + 1010101B,求,求X原原 和和Y原原=?解:解:X原原 = 10101010B,Y原原 = 01010101B【例例2-2】 设机器字长为设机器字
5、长为8位,位,X = 0,求,求X原原=?解:对于零(解:对于零(0)而言,其原码中的符号位取)而言,其原码中的符号位取0、取、取1都可以,所以都可以,所以 X原原 = 10000000B 或或 X原原 = 00000000B零零(0)的原码表示有两个:正零和负零的原码表示有两个:正零和负零 2022-5-185第2章 计算机中信息的表示与运算 2. 1. 1 定点数的表示定点数的表示 原码形式的原码形式的n位定点整数的表示范围是:位定点整数的表示范围是: (2n11) +(2n11)例如,例如,8位定点整数的表示范围是位定点整数的表示范围是: (271) +(271),即,即:127+127
6、;16位定点整数的表示范围是位定点整数的表示范围是: (2151) +(2151),即,即:32767+32767原码表示的原码表示的n位定点小数的表示范围是位定点小数的表示范围是: (12(n1) ) + (12(n1) ) 。 2022-5-186第2章 计算机中信息的表示与运算 2. 1. 1 定点数的表示定点数的表示 为了扩大表数范围,在数据都是正数的情为了扩大表数范围,在数据都是正数的情况下,可以把符号位省掉。况下,可以把符号位省掉。这样这样n位定点整数的表示范围是:位定点整数的表示范围是:0 +(2n 1)例如,例如,8位定点整数的表示范围是位定点整数的表示范围是: 0 +(281
7、),即,即: 0+255; 16位定点整数的表示范围是位定点整数的表示范围是: 0 +(2161),即,即: 0+65535 可见,定点数又分为带符号数和无符号数。原可见,定点数又分为带符号数和无符号数。原码和后面介绍的补码、反码都是针对带符号数的。码和后面介绍的补码、反码都是针对带符号数的。2022-5-187第2章 计算机中信息的表示与运算 原码简单明了,易于和真值转换,但是基于原码简单明了,易于和真值转换,但是基于原码实现的加、减运算比较复杂,即在执行的原码实现的加、减运算比较复杂,即在执行的加、减运算时,不能直接运算。需要先判断两加、减运算时,不能直接运算。需要先判断两个操作数的符号以
8、及两个操作数绝对值的相对个操作数的符号以及两个操作数绝对值的相对大小,然后再执行所需要的运算。大小,然后再执行所需要的运算。2022-5-188第2章 计算机中信息的表示与运算 能否找到一个与负数等价的正数来代替该能否找到一个与负数等价的正数来代替该负数,然后用加法来代替减法呢?负数,然后用加法来代替减法呢? 答案是肯定的,就是采用补码来表示数据。答案是肯定的,就是采用补码来表示数据。 (2) 补补码码例子,纠正快了例子,纠正快了2小时的时钟小时的时钟逆时针- 253顺时针+ 10 515- 123 时钟以 12为模可见 2 可用 + 10 代替减法 加法2022-5-189类似类似 4 +
9、8 (mod 12) 5 + 7 (mod 12)记作记作 2 + 10 (mod 12)称称 + 10 是是 2 以以 12 为模的补数为模的补数结论:结论: 1. 两个互为补数的数,它们绝对值之和即为两个互为补数的数,它们绝对值之和即为 模模 数。数。2. 一个负数加上一个负数加上 “模模” 即得该负数的补数。即得该负数的补数。3. 正数的补数即为其本身。正数的补数即为其本身。2022-5-1810补补 码码 的的 实实 例例 计数器计数器(模(模 16) 101110110000+ 0101 1011100001011 0000 ?可见可见 1011 可用可用 + 0101 代替代替记作
10、记作 1011 + 0101 (mod 24)同理同理 011 + 101 (mod 23) 0.1001 + 1.0111 (mod 2)自然去掉自然去掉2022-5-1811 补补 码码 (符号数字化的补数)(符号数字化的补数)X补补 = 0, X X 02N + X X 0如如x = +1010 x补补 = 27+1 +( 1011000 )= 1000000001011000 x补补 = 0,1010 x = 10110001,0101000用用 逗号逗号 将符号位将符号位和数值位隔开和数值位隔开N位定点整数位定点整数2022-5-1812小数x 为真值。x = + 0.1110 x补
11、 = x 1 x 02 + x 0 x 1(mod 2)如x补 = 0.1110 x = 0.11000001.0100000 x补 = 2+( 0.1100000 )= 10.00000000.1100000用 小数点 将符号位和数值位隔开2022-5-1813在机器字长为在机器字长为8位时,位时, +1补补 = 0,0000001B,+127补补 = 0,1111111B, 1补补 = 28 1 = 1,1111111B,127补补 = 28 127 = 1,0000001B, +0补补 = 00000000B, 0补补 = 28 0 = 00000000B 在补码中,零只有一种形式。在补
12、码中,零只有一种形式。那么,原码中用于表示负零的那个码点那么,原码中用于表示负零的那个码点10000000B在定点整在定点整数补码中被用来表示数补码中被用来表示2n 1,例如,例如128(n = 8);在定点小);在定点小数补码中被用来表示数补码中被用来表示-1。 2022-5-1814求补码的口诀求补码的口诀= 100000= 1,011010101 + 1= 1,0110 因因 x原原 = 1,1010则则x补补 = 24+1 1010= 11111 + 1 1010= 1111110101010当真值为当真值为 负负 时,时,补码补码 可用可用 原码除符号位外原码除符号位外每位取反,末位
13、加每位取反,末位加 1 求得求得+ 1设设 x = 1010 时时2022-5-1815例例2-3 设机器字长为设机器字长为8位,位,X = 46,求,求X补补 =?解:解:X原原 = 10101110B。除了符号位外,对。除了符号位外,对X原原每每位取反得到位取反得到11010001B,在最低位加,在最低位加1得到得到11010010B。所以。所以X补补 =11010010B例例2-4 设机器字长为设机器字长为16位,位,Y = 116,求,求Y补补 =?解:解:Y原原 = 1000 0000 0111 0100 B, 则则Y补补 = 1111 1111 1000 1100 B = FF8C
14、H观察上面两道例题的结果,一个负数的原码从它的低观察上面两道例题的结果,一个负数的原码从它的低位算起,遇到第一个位算起,遇到第一个“1”时,原码与补码是相同的。时,原码与补码是相同的。超过这个超过这个“1”直至符号位之间的那段数位,原码与补直至符号位之间的那段数位,原码与补码是相反的。码是相反的。十六进制形式2022-5-1816第2章 计算机中信息的表示与运算 2. 1. 1 定点数的表示定点数的表示 补码形式的补码形式的n位定点整数的表示范围是:位定点整数的表示范围是: 2n1 +(2n11)例如,例如,8位定点整数的表示范围是位定点整数的表示范围是: 27 +(271),即,即: 128
15、+127;16位定点整数的表示范围是位定点整数的表示范围是: 215 +(2151),即,即: 32768+32767补码表示的补码表示的n位定点小数的表示范围是位定点小数的表示范围是: 1 + (12(n1) ) 。 2022-5-1817第第2章章 计算机中信息的表示与运算计算机中信息的表示与运算 反码通常作为由原码求补码或由补码求原码的反码通常作为由原码求补码或由补码求原码的中间过渡。中间过渡。 对于正数,反码与原码和补码相同,直接在二对于正数,反码与原码和补码相同,直接在二进制数值前面加上符号位进制数值前面加上符号位“0”即可。对于负数,即可。对于负数,反码就是将负号反码就是将负号“”
16、替换成替换成“1”,然后将二进制,然后将二进制数值逐位取反而得到。数值逐位取反而得到。 在反码中,零有两个编码:在反码中,零有两个编码: +0反反 =00000B,0反反=111111B。(3) 反反码码2022-5-1818第第2章章 计算机中信息的表示与运算计算机中信息的表示与运算 原码、补码和反码,它们的一个共同特点就原码、补码和反码,它们的一个共同特点就是将符号作为最高位与其数值部分一起编码,而是将符号作为最高位与其数值部分一起编码,而且正号用且正号用“0”表示,负号用表示,负号用“1”表示。这就给比较表示。这就给比较不同符号的数据的相对大小带来了麻烦。在机器不同符号的数据的相对大小带
17、来了麻烦。在机器看来,正数小于负数。看来,正数小于负数。 给每一个二进制整数的真值加上一个常数给每一个二进制整数的真值加上一个常数2n(n为真值的位数),使得正数的最高位变成为真值的位数),使得正数的最高位变成“1”、负数的最高位变成负数的最高位变成“0”,那么,机器比较得到的,那么,机器比较得到的两个数之间的相对大小就是其真实的相对大小,两个数之间的相对大小就是其真实的相对大小,这样得到的编码就称为这样得到的编码就称为“移码移码”。 (4) 移移码码2022-5-1819第2章 计算机中信息的表示与运算 移码的定义:移码的定义:X移移=2n + X ( 2n X01010101B,所以,所以
18、XY。(4) 移码同一个真值的移码与其补码的差别仅仅是最高位相反。如果将补码符号位中的“0”改为“1”或者“1”改为“0”,即可得到该真值的移码。2022-5-1820第2章 计算机中信息的表示与运算 例如,例如, X = +0000000B, Y = 0000000B,则,则X移移 = 27 +X=10000000B + 0000000B=10000000B;Y移移 = 27 +Y=10000000B + (0000000B)=10000000B;所以,所以,+0移移 = 0移移,在移码中零有唯一的编码。,在移码中零有唯一的编码。(4) 移码移码仅针对定点整数而言的,定点小数没有移码的定义.
19、2022-5-18212022-5-1822例例2-5设机器字长设机器字长16位位,定点表示定点表示,尾数尾数15位位,数符数符1位位,问:问:(1)定点原码整数表示时定点原码整数表示时,最大正数是多少最大正数是多少?最小负数是多少最小负数是多少?(2)定点原码小数表示时定点原码小数表示时,最大正数是多少最大正数是多少?最小负数是多少最小负数是多少?(1)定点原码整数表示定点原码整数表示最大正数值最大正数值(2151)10(32767)10最小负数值最小负数值(2151)10(32767)10(2)定点原码小数表示定点原码小数表示 最大正数值最大正数值(1215)10(0.111.11)2最小
20、负数值最小负数值(1215)10(0.111.11)2注:注:1符号,数字符号,数字第2章 计算机中信息的表示与运算 2. 1 数据的表示数据的表示 2. 1. 1 定点数的表示定点数的表示 2. 1. 2 浮点数的表示浮点数的表示计算机只能识别定点数。浮点数怎样处理呢?借助于数学中的“科学记数法”,把浮点数转化成定点数。2022-5-1823第2章 计算机中信息的表示与运算 2. 1. 2 浮点数的表示浮点数的表示 一个浮点数一个浮点数N将被表示成:将被表示成:N = M RE 。M 称为称为尾数尾数,是一个带小数点的实数;,是一个带小数点的实数;R称为称为基值基值,是一个常整数;,是一个常
21、整数;E称为称为阶码阶码,是一个整数。,是一个整数。 2022-5-1824第2章 计算机中信息的表示与运算 2. 1. 2 浮点数的表示浮点数的表示浮点数的编码格式:尾数n+1位,阶码M+1位 尾数越长,表示的精度越高; 阶码越长,表示的范围越高。在固定长度的浮点数格式内,这两者是一对矛盾 2022-5-1825第2章 计算机中信息的表示与运算 2. 1. 2 浮点数的表示浮点数的表示2022-5-1826例例2-1 机器字长机器字长24位,欲表示位,欲表示 3万的十进制数,万的十进制数,在保证最大精度的前提下,除阶符、数符各取在保证最大精度的前提下,除阶符、数符各取1位,阶码、尾数各取几位
22、?位,阶码、尾数各取几位?解:解: log23104 =15, log215 =4故故阶码需阶码需4位,尾数取位,尾数取24-1-1-4=18位位第2章 计算机中信息的表示与运算 2. 1. 2 浮点数的表示浮点数的表示 为了利用尾数所占的二进制数位来表示最多为了利用尾数所占的二进制数位来表示最多的有效数字,浮点数一般采用的有效数字,浮点数一般采用“规格化形式规格化形式”。 所谓所谓“规格化形式规格化形式”是指尾数绝对值的最高位是指尾数绝对值的最高位(第一位)必须为(第一位)必须为1,即尾数绝对值必须大于或等,即尾数绝对值必须大于或等于于1/R,这样浮点数就有,这样浮点数就有n个有效数字了。个
23、有效数字了。 2022-5-1827第2章 计算机中信息的表示与运算 2. 1. 2 浮点数的表示浮点数的表示 规格化浮点数规格化浮点数尾数绝对值必须大于或等于尾数绝对值必须大于或等于1/R,即:即:R=2 尾数最高位为尾数最高位为1R=4 尾数最高尾数最高2位不全为位不全为0R=8 尾数最高尾数最高3位不全为位不全为02022-5-1828第2章 计算机中信息的表示与运算 2. 1. 2 浮点数的表示浮点数的表示 通过移动尾数小数点的位置,可将不规格化通过移动尾数小数点的位置,可将不规格化浮点数转化成浮点数转化成“规格化规格化”浮点数。尾数的小数点每浮点数。尾数的小数点每向左向左/向右移动向
24、右移动1位,就应该给阶码加位,就应该给阶码加1或减或减1,以,以保证浮点数数值不变。保证浮点数数值不变。 在计算机中,小数点的位置是固定的,所以只能移动尾数。“规格化”在计算机内部的操作是,尾数每向左/向右移动1位,阶码就减1/加1。 2022-5-1829第2章 计算机中信息的表示与运算 2. 1. 2 浮点数的表示浮点数的表示 通过移动尾数小数点的位置,可将不规格化通过移动尾数小数点的位置,可将不规格化浮点数转化成浮点数转化成“规格化规格化”浮点数。尾数的小数点每浮点数。尾数的小数点每向左向左/向右移动向右移动1位,就应该给阶码加位,就应该给阶码加1或减或减1,以,以保证浮点数数值不变。保
25、证浮点数数值不变。 在计算机中,小数点的位置是固定的,所以在计算机中,小数点的位置是固定的,所以只能移动尾数。只能移动尾数。“规格化规格化”在计算机内部的操作在计算机内部的操作是,尾数每向左是,尾数每向左/向右移动向右移动1位,阶码就减位,阶码就减1/加加1。 2022-5-1830第2章 计算机中信息的表示与运算 2. 1. 2 浮点数的表示浮点数的表示 基数基数R越大,表数范围越大,精度越低。越大,表数范围越大,精度越低。 2022-5-1831第2章 计算机中信息的表示与运算 2. 1. 2 浮点数的表示浮点数的表示 在规格化过程中,当浮点数阶码小于最小在规格化过程中,当浮点数阶码小于最
26、小阶码时,称发生阶码时,称发生“下溢下溢”。这时阶码(采用移码表。这时阶码(采用移码表示)为全示)为全0,又由于发生,又由于发生“下溢下溢”的浮点数的绝对的浮点数的绝对值很小,所以机器强制把尾数置成全值很小,所以机器强制把尾数置成全0,这样整,这样整个浮点数的所有数位就都是个浮点数的所有数位就都是0,便于实现,便于实现“判断一判断一个数是否为零个数是否为零”。这样得到的浮点数零称为。这样得到的浮点数零称为机器机器零零。机器零是一个特殊的合法的浮点数编码,。机器零是一个特殊的合法的浮点数编码,尽管它不符合规格化表示的要求。尽管它不符合规格化表示的要求。 2022-5-1832第2章 计算机中信息
27、的表示与运算 2. 1. 2 浮点数的表示浮点数的表示 同样地,在规格化过程中,浮点数的阶码还同样地,在规格化过程中,浮点数的阶码还会出现会出现“大于最大阶码大于最大阶码”的现象,即全的现象,即全1的阶码的阶码(采用移码表示)在加(采用移码表示)在加1后变成了全后变成了全0,计算结果,计算结果的绝对值超出了定长浮点数所能表示的最大绝对的绝对值超出了定长浮点数所能表示的最大绝对值,这种现象称为值,这种现象称为“上溢上溢”。这时,机器将停止运。这时,机器将停止运算,进行溢出处理。算,进行溢出处理。 可见,浮点数的溢出是由阶码溢出导致的。可见,浮点数的溢出是由阶码溢出导致的。2022-5-1833第
28、2章 计算机中信息的表示与运算 2. 1. 2 浮点数的表示浮点数的表示 2022-5-1834浮点数的表示范围2( 2m1)( 1 2n)2( 2m1)2n2( 2m1)( 1 2n)2( 2m1)2n最小负数最大负数最大正数最小正数负数区正数区下溢0上溢上溢215 ( 1 2-10) 2-15 2-10 2-15 2-10 215 ( 1 2-10) 设 m = 4 n =10原码非规格化浮点数的表示范围(续)尾补阶移 ,尾n阶m,规格化上溢下溢上溢mmmm第2章 计算机中信息的表示与运算 2. 1. 2 浮点数的表示浮点数的表示 浮点数的表示长度有浮点数的表示长度有32位和位和64位两种
29、。称位两种。称32位的位的浮点数为实数浮点数为实数(Real number)或单精度或单精度(Single-precision)浮点数,称浮点数,称64位的浮点数为长实数位的浮点数为长实数(Long Real number)或双精度或双精度(Double-precision)浮点数。浮点数。 至于在至于在32位或位或64位中,尾数绝对值的位数位中,尾数绝对值的位数n和阶和阶值的位数值的位数m各占多少,这就需要计算机体系结构各占多少,这就需要计算机体系结构的设计者权衡表数精度和表数范围的需求,综合的设计者权衡表数精度和表数范围的需求,综合划分了。划分了。2022-5-1837第2章 计算机中信息
30、的表示与运算 2. 1. 2 浮点数的表示浮点数的表示根据根据IEEE 754国际标准,常用的浮点数有两种格式:国际标准,常用的浮点数有两种格式:(1) 单精度浮点数单精度浮点数(32位位),阶码,阶码8位,尾数位,尾数24位位(内含内含1位符号位位符号位)。(2) 双精度浮点数双精度浮点数(64位位),阶码,阶码11位,尾数位,尾数53位位(内含内含1位符号位位符号位)。2022-5-1838第2章 计算机中信息的表示与运算 2. 1. 2 浮点数的表示浮点数的表示根据根据IEEE 754标准标准, 符号位符号位 “0”代表正数代表正数;“1”代表负数代表负数. 阶码用移码表示,尾数规格化形
31、式阶码用移码表示,尾数规格化形式,但格式但格式如下如下:1.XXXX。由于最高位总是。由于最高位总是1,因此省因此省略略,称隐藏位称隐藏位(临时实数则不隐藏临时实数则不隐藏). 一个规格化一个规格化32位浮点数位浮点数x的真值表示为的真值表示为x=(-1)S(1.M)2e-127 一个规格化一个规格化64位浮点数位浮点数x的真值表示为的真值表示为x=(-1)S(1.M)2e-1023 2022-5-1839第2章 计算机中信息的表示与运算 2. 1. 2 浮点数的表示浮点数的表示例例 把浮点数把浮点数1100000111001001000000000000转转换成十进制数。换成十进制数。解:解
32、: 符号位是符号位是1,阶码是,阶码是10000011,尾数尾数 是是1001001000000000000还原阶码:还原阶码: 10000011 01111111100 x=(-1)S1.1001001B24=-11001.001B=-25.125D2022-5-1840第2章 计算机中信息的表示与运算 例例2-5 设机器字长为设机器字长为16,请将,请将26分别表示成二进制分别表示成二进制定点数和规格化的浮点数。其中浮点数的阶码占定点数和规格化的浮点数。其中浮点数的阶码占5位位(含一位阶符含一位阶符),尾数占,尾数占11位位(含一位数符含一位数符)。解:设解:设X= 26 = 11010B
33、,采用科学计数法表示成,采用科学计数法表示成X= 0.11010B 20101B,所以,所以, X原原 =1,000000000011010 X补补 =1,111111111100110按照规格化浮点数的编码格式,按照规格化浮点数的编码格式,X表示为表示为 X原原 =0, 0101;1.1101000000 X补补 =0, 0101;1.00110000002022-5-1841第2章 计算机中信息的表示与运算 例例2-6 请写出请写出 53/512对应的尾数,分别用原码和补对应的尾数,分别用原码和补码表示的规格化浮点数码表示的规格化浮点数(设浮点数格式同上例,阶设浮点数格式同上例,阶码用移码
34、表示码用移码表示)。解解: 53/512 = 0.000110101B= (0.110101B) 211B 原码表示尾数原码表示尾数: 1. 1101010000;补码表示尾数补码表示尾数: 1. 0010110000;原码表示阶码原码表示阶码: 1, 0011;补码表示阶码;补码表示阶码: 1, 1101;移码表示阶码移码表示阶码: 0, 1101。原码尾数的规格化浮点数原码尾数的规格化浮点数: 0, 1101;1. 1101010000;补码尾数的规格化浮点数补码尾数的规格化浮点数: 0, 1101;1. 0010110000。 2022-5-1842第2章 计算机中信息的表示与运算 2.
35、 1 数据的表示数据的表示 2. 2 定点数的运算定点数的运算 2. 3 浮点数的运算浮点数的运算 2. 4 面向错误检测与纠错的数据编码面向错误检测与纠错的数据编码2. 5 字符的表示字符的表示 2. 6 面向存储与传输的数据编码面向存储与传输的数据编码 2022-5-1843第2章 计算机中信息的表示与运算 2. 2 定点数的运算定点数的运算 2. 2. 1 逻辑运算逻辑运算 n逻辑运算的特点是按位进行,每一位运算后得逻辑运算的特点是按位进行,每一位运算后得到一个独立的结果,对其他位没有影响。因此,到一个独立的结果,对其他位没有影响。因此,逻辑运算不存在进位、借位、溢出等问题。逻辑运算不存
36、在进位、借位、溢出等问题。n常见的逻辑运算有逻辑非常见的逻辑运算有逻辑非(NOT)、逻辑加、逻辑加(OR)、逻辑乘逻辑乘(AND)和逻辑异或和逻辑异或(XOR). 2022-5-1844第第2章章 计算机中信息的表示与运算计算机中信息的表示与运算 2. 2. 1 逻辑运算逻辑运算 逻辑非逻辑非, 也叫也叫“按位取反按位取反”或或“按位求非按位求非” ,就,就是对数据的每一位取反,将是对数据的每一位取反,将1变成变成0,0变成变成1。 例如,例如,X=0101 0101B,NOT X = 1010 1010B 实现实现“逻辑非逻辑非”的电路叫做的电路叫做“非门非门”,如下,如下图所示。图所示。2
37、022-5-1845第2章 计算机中信息的表示与运算 2. 2. 1 逻辑运算逻辑运算 逻辑加,也称逻辑加,也称“按位求逻辑或按位求逻辑或”运算,它的运算符是运算,它的运算符是“OR”或或“”。其运算规则是:。其运算规则是: 11=1,10=1,01=1,00=0。例如,例如,X=0101 0101B,Y = 1110 0010B。 X OR Y =1111 0111B。 实现实现“逻辑加逻辑加”的电路叫做的电路叫做“或门或门”,如下图所示,如下图所示2022-5-1846第第2章章 计算机中信息的表示与运算计算机中信息的表示与运算 2. 2. 1 逻辑运算逻辑运算 逻辑乘,也称逻辑乘,也称“
38、按位求逻辑与按位求逻辑与”运算,它的运运算,它的运算符是算符是“AND”或或“”“”。其运算规则是:。其运算规则是:1*1=1,1 * 0=0,0 * 1=0,0 * 0=0。例如,例如,X=0101 0101B,Y = 1110 0010B。 X AND Y =01000000B。实现实现“逻辑乘逻辑乘”电路叫做电路叫做“与门与门” ,如下图所,如下图所示示2022-5-1847第第2章章 计算机中信息的表示与运算计算机中信息的表示与运算 “逻辑异或逻辑异或”的运算符是的运算符是“XOR”或者或者“”。其运算规则是:当两个操作数相异时,结果为其运算规则是:当两个操作数相异时,结果为“真真(1
39、)”,否则为,否则为“假假(0)”,即,即1 1=0,1 0=1,0 1=1,0 0=0。这个运算规则与忽。这个运算规则与忽略进位的略进位的“二进制加法二进制加法”相同,所以相同,所以“逻辑异或逻辑异或”也称也称“按位加按位加” 。 例如,例如,X=0101 0101B,Y = 1110 0010B。 X XOR Y =10110111B。 实现实现“逻辑异或逻辑异或”的电路叫做的电路叫做“异或门异或门”, 如右图所示如右图所示.2022-5-1848第2章 计算机中信息的表示与运算 2. 2 定点数的运算定点数的运算 2. 2. 1 逻辑运算逻辑运算 2. 2. 2 移位运算移位运算1. 概
40、述概述 移位运算,也称移位操作,是指在小数点位置移位运算,也称移位操作,是指在小数点位置固定不变的情况下,将一个二进制数左移或右移固定不变的情况下,将一个二进制数左移或右移n位。位。 对于一个定点数,将其左移对于一个定点数,将其左移n位,相当于该数乘位,相当于该数乘以以2n;将其右移;将其右移n位,相当于该数除以位,相当于该数除以2n。2022-5-1849第2章 计算机中信息的表示与运算 计算机总是用定长的二进制位来表示一个计算机总是用定长的二进制位来表示一个数据。当数据左移或右移数据。当数据左移或右移n位后,必然会使其位后,必然会使其低低n位或高位或高n位出现空位。那么,对于空出来的位出现
41、空位。那么,对于空出来的数位应该填补数位应该填补0还是填补还是填补1呢?呢? 这与机器数被当作有符号数还是无符号数这与机器数被当作有符号数还是无符号数有关。有符号数的移位称为有关。有符号数的移位称为算术移位算术移位,无符号,无符号数的移位称为数的移位称为逻辑移位逻辑移位。2. 2. 2 移位运算2022-5-1850第2章 计算机中信息的表示与运算 2. 算术移位算术移位 算术移位的基本规则是:符号位保持不变,左算术移位的基本规则是:符号位保持不变,左移或右移移出的空位补移或右移移出的空位补0。 所以对于正数,算术移位出现的空位补所以对于正数,算术移位出现的空位补0。 对于负数,若用原码表示,
42、算术移位出现的空对于负数,若用原码表示,算术移位出现的空位也补位也补0;若用反码表示,算术移位出现的空位;若用反码表示,算术移位出现的空位则补则补1。 补码表示的负数的空位补位原则是什么?补码表示的负数的空位补位原则是什么?2. 2. 2 移位运算2022-5-1851第2章 计算机中信息的表示与运算 补码的特点:一个负数的原码从它的低位补码的特点:一个负数的原码从它的低位算起,遇到第一个算起,遇到第一个“1”时,原码与补码是相同的;时,原码与补码是相同的;超过这个超过这个“1”直至符号位之间的那段数位,原码直至符号位之间的那段数位,原码与补码是相反的。与补码是相反的。 所以,右移移出的空位位
43、于符号位之后,所以,右移移出的空位位于符号位之后,填补的内容应与原码相反,即补填补的内容应与原码相反,即补1。左移移出的。左移移出的空位是由它的低位生出的,填补的内容应与原空位是由它的低位生出的,填补的内容应与原码相同,即补码相同,即补0。 2. 2. 2 移位运算2022-5-1852 设机器数字长为设机器数字长为 8 位(含一位符号位位(含一位符号位),),写出写出A = +18时,三种机器数左、右移一位和两位后的表时,三种机器数左、右移一位和两位后的表示形式及对应的真值,并分析结果的正确性。示形式及对应的真值,并分析结果的正确性。解:A = +18则 A原 = A补 = A反 = 0,0
44、010010 +40,0000100 +90,0001001+720,1101000 +360,0110100 +180,0010010移位前A原=A补=A反对应的真值机 器 数移位操作1212= +10010B 设机器数字长为设机器数字长为 8 位(含一位符号位位(含一位符号位),),写出写出A = 18时,三种机器数左、右移一位和两位后的表时,三种机器数左、右移一位和两位后的表示形式及对应的真值,并分析结果的正确性。示形式及对应的真值,并分析结果的正确性。解:解:A = 18 41,0000100 91,0001001 721,1001000 361,0100100 181,0010010
45、移位前移位前对应的真值对应的真值机机 器器 数数移位操作移位操作1212原码原码= 10010B 41,1111011 91,1110110 721,0110111 361,1011011 181,1101101移位前移位前对应的真值对应的真值机机 器器 数数移位操作移位操作1212 51,1111011 91,1110111 721,0111000 361,1011100 181,1101110移位前移位前对应的真值对应的真值机机 器器 数数移位操作移位操作1212补码补码反码反码第2章 计算机中信息的表示与运算 3. 逻辑移位逻辑移位 逻辑移位处理的是无符号数,所以它的基逻辑移位处理的是无
46、符号数,所以它的基本规则是:无论左移还是右移,移出的空位都本规则是:无论左移还是右移,移出的空位都补补0。 无论移丢无论移丢0还是移丢还是移丢1,对结果的正确性和,对结果的正确性和精度都没有影响精度都没有影响 2. 2. 2 移位运算2022-5-1856第2章 计算机中信息的表示与运算 2. 2 定点数的运算定点数的运算 2. 2. 1 逻辑运算逻辑运算 2. 2. 2 移位运算移位运算2. 2. 3 加法与减法运算加法与减法运算 计算机通过引入补码将定点数的加、减运算计算机通过引入补码将定点数的加、减运算都统一成加法运算,所以参加加、减运算的操作都统一成加法运算,所以参加加、减运算的操作数
47、都必须表示成补码。数都必须表示成补码。 采用补码进行计算还有一个好处,结果的符采用补码进行计算还有一个好处,结果的符号位不用单独处理,它是在运算过程中自然形成号位不用单独处理,它是在运算过程中自然形成的。这是采用原码进行计算所不具有的,大大简的。这是采用原码进行计算所不具有的,大大简化了硬件设计。化了硬件设计。 2022-5-1857第2章 计算机中信息的表示与运算 2. 2 定点数的运算定点数的运算 2. 2. 3 加法与减法运算加法与减法运算设设n为机器数字长,则补码的加法公式是为机器数字长,则补码的加法公式是 X + Y补补= X补补 + Y补补(mod 2n)补码的减法公式是补码的减法
48、公式是 X Y补补 = X补补+ Y补补(mod 2n) 其中,其中,Y补补的求法是,将的求法是,将Y补补的各位的各位(连同符号连同符号位位)逐位取反,末位加逐位取反,末位加1。2022-5-1858第2章 计算机中信息的表示与运算 2. 2. 3 加法与减法运算加法与减法运算例例2-8 设机器数字长为设机器数字长为8位,若位,若X= + 10101B,Y= + 11B,求,求X+Y=?解:解:X补补 = 0 0010101B,Y补补 = 0 0000011B。 所以所以X + Y补补 = X补补 + Y补补 = 0 0011000B 则则 X+Y = + 11000B2022-5-1859第
49、2章 计算机中信息的表示与运算 例例2-9 设机器数字长为设机器数字长为8位,若位,若X= 0101010B,Y= 1010B,求,求X+Y=?解:解:X补补 = 1 1010110B,Y补补 = 1 1110110B。所以所以X + Y补补 = 1 1010110B + 1 1110110B 1 1 1001100B 在模在模28的意义下,超出字长的数位丢弃,的意义下,超出字长的数位丢弃,即即X + Y补补 = 1 1001100B,则,则X+Y = 110100B2. 2. 3 加法与减法运算加法与减法运算2022-5-1860第2章 计算机中信息的表示与运算 例例2-10 设机器数字长为
50、设机器数字长为8位,若位,若X= + 1110101B,Y= + 0001100B,求,求X+Y=?解:解:X补补 = 0 1110101B,Y补补 = 0 0001100B。所。所以以 X + Y补补 = 0 1110101B + 0 0001100B 1 0000001B即即X + Y补补 = 1 0000001B,则,则X+Y = 1111111B 参加运算的两个操作数都是正数,但是加法参加运算的两个操作数都是正数,但是加法运算的结果却是一个负数。运算的结果却是一个负数。2022-5-1861第2章 计算机中信息的表示与运算 这就是目前计算机在实现计算时特有的一这就是目前计算机在实现计算
51、时特有的一个现象个现象“溢出溢出(Overflow)”。 导致导致“溢出溢出”的原因是计算机字长是固定的,的原因是计算机字长是固定的,数值最高位产生的进位数值最高位产生的进位1被字长最高位吸收。这被字长最高位吸收。这个个“1”的属性本来是数值,却被当作了符号。的属性本来是数值,却被当作了符号。 2022-5-1862第2章 计算机中信息的表示与运算 当两个同号的操作数相加时,如果它们的当两个同号的操作数相加时,如果它们的绝对值相加的结果超出了操作数数值部分所能表绝对值相加的结果超出了操作数数值部分所能表示的最大值,则发生示的最大值,则发生“溢出溢出”。表现为结果的符。表现为结果的符号与操作数的
52、符号相反。如果是两个异号的操作号与操作数的符号相反。如果是两个异号的操作数相加,则绝对不会发生数相加,则绝对不会发生“溢出溢出”。 事实上,事实上,“溢出溢出”是相对的,只要字长再增是相对的,只要字长再增加加1位,原先的位,原先的“溢出溢出”就不会出现。就不会出现。 例如,操作数采用双符号位,即便发生例如,操作数采用双符号位,即便发生“溢溢出出”,也能够保存结果。,也能够保存结果。2022-5-1863溢出判断溢出判断(1) 单符号位判溢出单符号位判溢出参加加法操作的参加加法操作的 两个数(减法时即为被减数和两个数(减法时即为被减数和“求补求补”以后的减数)符号相同,其结果的符以后的减数)符号
53、相同,其结果的符号与原操作数的符号不同,即为号与原操作数的符号不同,即为溢出溢出。硬件实现硬件实现最高有效位的进位最高有效位的进位 符号位的进位符号位的进位 = 1如如1 0 = 10 1 = 1有有 溢出溢出0 0 = 01 1 = 0无无 溢出溢出溢出溢出2022-5-1864(2) 双符号位判溢出双符号位判溢出结果的双符号位结果的双符号位 相同相同 未溢出未溢出结果的双符号位结果的双符号位 不同不同 溢出溢出最高符号位最高符号位 代表其代表其 真正的符号真正的符号00, 11, 10, 01, 采用双符号位的补码称为采用双符号位的补码称为模模4的补码的补码,也称,也称变变形补码形补码。2
54、022-5-1865第2章 计算机中信息的表示与运算 例例2-12 设采用双符号位,若设采用双符号位,若X= + 1110101B,Y= + 0001100B,求,求X+Y=?解:解:X补补 = 00 1110101B,Y补补 = 00 0001100B。所。所以以X + Y补补 = 00 1110101B + 00 0001100B 01 0000001B 即即X + Y补补 = 01 0000001B。 双符号位取值不同,表示发生了双符号位取值不同,表示发生了“溢出溢出”。 但最高符号位仍表示结果的符号但最高符号位仍表示结果的符号2022-5-1866第2章 计算机中信息的表示与运算 2.
55、 2 定点数的运算定点数的运算 2. 2. 1 逻辑运算逻辑运算 2. 2. 2 移位运算移位运算2. 2. 3 加法与减法运算加法与减法运算2. 2. 4 乘法运算乘法运算2022-5-1867分析笔算乘法A = 0.1101 B = 0.1011AB = 0.100011110 . 1 1 0 10 . 1 0 1 11 1 0 11 1 0 10 0 0 01 1 0 10 . 1 0 0 0 1 1 1 1符号位单独处理乘数的某一位决定是否加被乘数 4个位积一起相加乘积的位数扩大一倍乘积的符号心算求得 ?2022-5-1868笔算乘法改进A B = A 0.1011= 0.1A + 0
56、.00A + 0.001A +0.0001A= 0.1A + 0.00A + 0.001( A +0.1A)= 0.1A + 0.010 A + 0. 1( A +0.1A)= 0.1A +0.1 0 A+0.1(A + 0.1A)= 2-1A +2-1 0 A+2-1(A + 2-1(A+0)第一步 被乘数A + 0第二步 1,得新的部分积第八步 1,得结果第三步 部分积 + 被乘数右移一位2022-5-1869改进后的笔算乘法过程(竖式)0 . 0 0 0 00 . 1 1 0 10 . 1 1 0 10 . 1 1 0 10 . 0 0 0 00 . 1 1 0 1初态,部分积 = 0乘
57、数为 1,加被乘数乘数为 1,加被乘数乘数为 0,加 01 . 0 0 1 110 . 1 0 0 11 11 . 0 0 0 11 1 1乘数为 1,加 被乘数0 . 1 0 0 01 1 1 11,得结果1 0 1 1=0 . 0 1 1 01,形成新的部分积1 1 0 1=0 . 1 0 0 11,形成新的部分积1 1 1 0=0 . 0 1 0 01,形成新的部分积1 1 1 1= 部 分 积 乘 数 说 明2022-5-1870小小 结结 被乘数只与部分积的高位相加被乘数只与部分积的高位相加 由乘数的末位决定被乘数是否与原部分积相加,由乘数的末位决定被乘数是否与原部分积相加, 然后然
58、后 1 形成新的部分积,形成新的部分积,同时同时 乘数乘数 1(末(末 位移丢),空出高位存放部分积的低位。位移丢),空出高位存放部分积的低位。硬件硬件3个寄存器,具有移位功能个寄存器,具有移位功能一个全加器一个全加器 乘法乘法 运算运算 加和移位。加和移位。n = 4,加加 4 次,移次,移 4 次次2022-5-1871原码一位乘运算以小数为例设x原 = x0.x1x2 xn y原 = y0.y1y2 yn= (x0 y0). x*y*x y原 = (x0 y0).(0.x1x2 xn)(0.y1y2 yn)式中 x*= 0.x1x2 xn 为 x 的绝对值 y*= 0.y1y2 yn 为
59、 y 的绝对值 乘积的符号位单独处理 x0 y0数值部分为绝对值相乘 x* y*2022-5-1872原码一位乘递推公式x* y* = x*(0.y1y2 yn)= x*(y12-1+y22-2+ + yn2-n)= 2-1(y1x*+2-1(y2x*+ 2-1(ynx* + 0)z1znz0 = 0z1 = 2-1(ynx*+z0)z2 = 2-1(yn-1x*+z1)zn = 2-1(y1x*+zn-1)z02022-5-1873例1已知 x = 0.1110 y = 0.1101 求x y原解: 数值部分的运算0 . 0 0 0 00 . 1 1 1 00 . 1 1 1 00 . 0
60、0 0 00 . 1 1 1 00 . 1 1 1 0部分积 初态 z0 = 0 部 分 积 乘 数 说 明0 . 0 1 1 101 . 0 0 0 11 01 . 0 1 1 01 1 00 . 1 0 1 10 1 1 01,得 z4逻辑右移逻辑右移1 1 0 1=0 . 0 1 1 11,得 z10 1 1 0=0 . 0 0 1 11,得 z21 0 1 1=0 . 1 0 0 01,得 z31 1 0 1=2022-5-1874 数值部分按绝对值相乘 乘积的符号位 x0 y0 = 1 0 = 1x* y* = 0. 1 0 1 1 0 1 1 0则 x y原 = 1. 1 0 1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 44931-2024纳米技术吸入毒性研究中金属纳米颗粒制备蒸发-冷凝法
- PB-22-5-Hydroxyquinoline-isomer-生命科学试剂-MCE-7761
- 1-Boc-4-carboxymethyl-piperazine-生命科学试剂-MCE-6310
- 2025年度公共停车场车位使用权抵押合同范例
- 二零二五年度离婚后小孩抚养费及生活费用监管协议
- 二零二五年度早餐车餐饮合作经营协议
- 施工现场施工排水排泥管理制度
- 施工现场施工防地震灾害制度
- 教育领域中的学生心理健康研究
- 小学数学新课程教学法复习题课件
- 《社区康复》课件-第七章 脑瘫患儿的社区康复实践
- 城乡环卫一体化内部管理制度
- 小学数学六年级解方程练习300题及答案
- 光伏十林业可行性报告
- 公路工程安全风险辨识与防控手册
- 骨科手术纠纷案例分析课件
- 2022年广西高考英语真题及答案(全国甲卷)
- 安全生产责任清单(加油站)
- 动物检疫技术-动物检疫的程序(动物防疫与检疫技术)
- 煤矿复工复产专项安全风险辨识
- DB42T 1049-2015房产测绘技术规程
评论
0/150
提交评论