1 / 52

计算机中的数的表示

计算机中的数的表示. 存储容量的表达 比特b(二进制1位) 字节B (二进制8位) 1KB=210B=1024B 1MB=220B、1GB=230B 进制的表示 二进制数 : 结尾用字母B或 (01011101) 2 十进制数 : 可不用结尾 字母, 也可用D或 (26) 10 十六进制数 : 结尾用 字母 H或 (1A19) 16. 1.3.1 数制及转换. 1 、 数制 2 、 各种数制的相互转换. 1 、数制. ( 1 ) 十进制数 ( 2 ) 二进制数 ( 3 ) 十六进制数. (1)十进制数( Decimal ).

howell
Download Presentation

计算机中的数的表示

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 计算机中的数的表示 • 存储容量的表达 • 比特b(二进制1位) • 字节B (二进制8位) • 1KB=210B=1024B • 1MB=220B、1GB=230B • 进制的表示 • 二进制数:结尾用字母B或(01011101)2 • 十进制数:可不用结尾字母,也可用D或(26)10 • 十六进制数:结尾用字母H或(1A19)16

  2. 1.3.1 数制及转换 • 1、数制 • 2、各种数制的相互转换

  3. 1、数制 • (1)十进制数 • (2)二进制数 • (3)十六进制数

  4. (1)十进制数(Decimal) • ①具有10个数字符号0 , 1 , 2 , · · · , 9; • ②由低位向高位进位是按“逢10进1”的规则进行的 • ③基数为10,第i位的权为10i。 其中 i=n,n-1,· · ·,2,1,0,-1,-2,· · · 规定整数最低位的位序号i=0。 • 例: (6543.21)10 =6543.21D =6×103+ 5×102+ 4×101+ 3×100+ 2×10-1+1×10-2

  5. (2)二进制数(Binary) • ①具有2个数字符号0,1; • ②由低位向高位进位是按“逢2进1”的规则进行的; • ③基数为2,第i位的权为2i。 • 其中 i=n,n-1,· · ·,2,1,0,-1,-2,· · · • 规定整数最低位的位序号i=0 • 例:(1010.101)2 • =1010.101B • =1×23+0×22+ 1×21+ 0×20+ 1×2-1+ 0×2-2+ 1×2-3

  6. (3)十六进制数(Hexadecimal) • 1、具有16个数字符号0,1, 2, · · · ,9,A , B , C , D , E , F; • 2、由低位向高位进位是按“逢16进1”的规则进行的; • 3、基数为16,第i位的权为 16i。 • 其中 i=n,n-1,· · ·,2,1,0,-1,-2,· · · • 规定整数最低位的位序号i=0 • 例:(19BF.ABE)16 • =19BF.ABEH • = 1×163+ 9× 162+ 11×161+ 15×160+ 10×16-1+ 11×16-2+ 14×16-3

  7. 2、各种数制的相互转换 • (1)二进制、十六进制转换为十进制 • (2)十进制转换为二进制 • (3)二进制转换为十六进制

  8. (1)二进制、十六进制转换为十进制 • 按权展开求和。 • 如:①10101.101B • = 1 ×24 + 1×22 + 1×20 + 1×2-1 + 1×2-3 • = 16 + 4 + 1 + 0.5 + 0.125 • =21.625D • ② 19B.ABH • = 1×162+ 9× 161+ 11×160+ 10×16-1+ 11×16-2 • = 256 +144 +11 + 0.625 +0.04296875 • =411.66796875D

  9. (2)十进制转换为二进制 • ①整数部分 • ② 小数部分

  10. (3)二进制与十六进制之间的转换 • 四位二进制数正好等于一位十六进制数 00011111 B 1( 1×20=1) 2 ( 1×21=2) 4( 1×22=4) 8 ( 1×23=8) 16 ( 1×24=16)

  11. 四位二进制与一位十六进制数的对应关系 四位二进制数 一位十六进制数 一位十六进制数 四位二进制数 0000B 0H 1000B 8H 0001B 1H 1001B 9H 0010B 2H 1010B AH BH 0011B 3H 1011B 0100B 4H 1100B CH 0101B 5H 1101B DH 0110B 6H 1110B EH 0111B 7H 1111B FH

  12. 二进制转换为十六进制数 • 例:1110110101100.10101B = ?H 1110110101100.10101 0001110110101100.10101000 ↓↓↓↓↓↓ 1 D A C . A 8 1110110101100.10101B = 1DAC.A8H

  13. 十六进制转换为二进制数 • 例:39F.E1AH = ?B 39 F . E 1A ↓ ↓ ↓ ↓ ↓ ↓ 001110011111 . 111000011010 39F.E1AH= 001110011111.1110 00011010B = 11 1001 1111.1110 0001 101B

  14. ①整数部分——除2取余法 • 例:19D = ?B 余数 低 19÷2 =9 … 1 9÷2 = 4 … 1 4÷2 = 2 … 0 2÷2 = 1 … 0 1÷2 = 0 … 1 高 所以,我们可以得到: 19D = 10011B

  15. ②小数部分——乘2取整法 • 例:0 .625D = ?B 0.625×2 = 1.25 … 1 0.25 ×2 = 0.5 … 0 0.5 ×2 = 1.0 … 1 整数 高 低 所以我们可以得到: 0.625D = 0.101B

  16. 二、 计算机中的数及编码 • 1、机器数与真值 • 2、带符号数、无符号数 • 3、原码、补码及反码 • 4、真值与补码之间的转换 • 5、补码的运算 • 6、二进制编码

  17. 1、机器数与真值 • (1)在计算机中数是用二进制数来表示的。 • (高电平代表“1”,低电平代表“0”) • (2)数的符号在计算机中也是用二进制数表示的。 • “+”用“0”表示, “-”用“1”表示。 • 例:有两个数: N1=+1101001 N2=-1101001 真值 在计算机中的表示形式: N1:01101001 N2:11101001 机器数

  18. 2、带符号数、无符号数 • (1)带符号数 • 用0表示正数,用1表示负数,这种表示数的方法,称为带符号数的表示方法,所表示的数称为带符号数。 • 带符号数的表示形式: • ① +22 ②-22 数值部分 符 号 位 数值部分 符 号 位

  19. 2、带符号数、无符号数 • (2)无符号数 • 如果把全部有效位都用来表示数的大小,即没有符号位,这种方法表示的数,叫无符号数。 • 无符号数表示形式: • ① 22 ②150 8位全部用来表示数值大小 8位全部用来表示数值大小

  20. 3、原码、反码及补码 • 思考:在计算机中一个数的大小和符号都用二进制来表示,那么在计算机中是如何进行运算的? • (1)原码 • (2)反码 • (3)补码

  21. 思考? • 在计算机中一个数的大小和符号都用二进制来表示,那么在计算机中是如何进行运算的? • 例: 有一个钟显示时间是6点钟,而正确时间是1点钟,请问如何校正这个钟? • 方法1:顺时针拨7个钟;6+7→1 • 方法2:逆时针拨5个钟;6-5→1 • 引进概念 —— 模

  22. 概念—模 • 模一个计量器的容量,记为M,或mod M。 • 模的特性——当一个计量器的模为M时,它在计量器里的表示形式与0一样,也就是说,M = 0。 • 所以,对时钟来说, M=12 : • 方法1:6+7 =13 = 12+1 = 0 + 1=1 • 方法2: 6+7 = 6-5 = 1

  23. 概念—模 • 同样,对一个n位二进制计数器,它的容量为2n,它的模为M= 2n 。 • 假设,n=8,则 M=28=256。 • 也就是说对8位二进制计数器来说,256=0 → 0 → 1 256 8位计数器

  24. (1)原码 • 定义:一个数的原码就是该数的机器数。 • ①对正数 • X=+X6X5X4X3X2X1X0 (Xi = 0 或 1) • 则:[X]原码= 0X6X5X4X3X2X1X0 • ②对负数 • X=-X6X5X4X3X2X1X0 (Xi = 0 或 1) • 则:[X]原= 1X6X5X4X3X2X1X0

  25. (2)反码 • 定义:正数的反码就等于它的原码; • 负数的反码就是它的原码除符号位外, • 各位取反。 ①对正数 X=+X6X5X4X3X2X1X0 (Xi = 0 或 1) • 反码 [X]反码= 0X6X5X4X3X2X1X0 ②对负数 X=-X6X5X4X3X2X1X0 (Xi = 0 或 1) 反码 [X]反码=

  26. (2)反码 • 例:X1=+100 1001 X2=-100 1001 • 则 : • [X1]原 =0100 1001 [X2]原 =1100 1001 • [X1]反 =0100 1001 [X2]反 =1011 0110

  27. (3)补码 • 定义:正数的补码就等于它的原码; • 负数的补码就是它的反码加1。 • ①对正数 X=+X6X5X4X3X2X1X0 (Xi = 0 或 1) • 补码 [X]补=0X6X5X4X3X2X1X0 ②对负数 X=-X6X5X4X3X2X1X0 (Xi = 0 或 1) 补码 [X]补= [X]反+1 +1 =

  28. (3)补码 • 例:X1=+100 1001 X2=-100 1001 • 则 : [X1]原 =0100 1001 [X1]反 =0100 1001 [X1]补=0100 1001 [X2]原 =1100 1001 [X2]反 =1011 0110 [X2]补 =[X]反+1 =1011 0111

  29. 4、真值与补码之间的转换 • 例1 已知X=+010 1010,Y=-010 1010 • 求它们的原码、反码和补码。 • 解: [X]原= [ X]反=[X]补=0010 1010 • [Y]原=1010 1010 • [Y]反=1101 0101 • [Y]补= [Y]反+1 • =1101 0101+1 • = 1101 0110

  30. 4、真值与补码之间的转换 • 例2 [X]补=1010 1101, 求真值X。 • 解:因为补码的首位是1,则其真值X即为负数 • [ X]反= [X]补-1 • =1010 1101 -1 • =1010 1100 • [X]原 =1101 0011(除了符号位,按位取反) • 所以, X= -101 0011

  31. 5、补码的运算 • 补码的运算就是计算机中数的运算。 • (1)补码的加法规则 • (2)补码的减法规则

  32. (1)补码的加法规则 • 规则 [X +Y]补= [X]补+[Y]补 • 例 X=+011 0110 ,Y=-111 1001,求X+Y=? • 解:首先按常规加法计算: • X= +011 0110 = 54D • Y= -111 1001 =-121D • 所以,X+Y=-67D

  33. (1)补码的加法规则 • 例 X=+011 0110 ,Y=-111 1001,求X+Y=? • 解:用补码的加法规则来求: • [X]原= [ X]反=[X]补=0011 0110 • [Y]原=1111 1001 • [Y]反=1000 0110 • [Y]补= [Y]反+1= 1000 0110+1= 1000 0111 • [X]补= 0011 0110 • +)[Y]补= 1000 0111 • [X]补+[Y]补=1 011 1101

  34. (1)补码的加法规则 • 例:根据规则:[X +Y]补= [X]补+[Y]补 • 所以, • [X+Y ]补= 1011 1101 • [X+Y ]反= 1011 1101 -1= 1011 1100 • [X+Y ]原= 1100 0011 • 则:X+Y= -100 0011 • =- 67D • 显然,补码的加法规则是正确的。

  35. (2)补码的减法规则 • 规则 [X -Y]补= [X +(-Y)]补 =[X]补+[-Y]补 • 例 X=+101 0101 ,Y= + 110 0001,求X - Y=? • 解:首先按常规减法计算: • X= +101 0101 = 85D • Y= +110 0001 =97D • 所以,X-Y=-12D

  36. (2)补码的减法规则 • 例 X=+101 0101 ,Y= + 110 0001,求X - Y=? • 解:按补码的减法规则来求: • [X]原= [ X]反=[X]补=0101 0101 • -Y= - 110 0001 • [-Y]原=1110 0001 • [-Y]反=1001 1110 • [-Y]补=1001 1111 • [X]补= 0101 0101 • +)[-Y]补= 1001 1111 • [X]补+[-Y]补=1111 0100

  37. (2)补码的减法规则 • 例:根据补码的减法规则: • [X -Y]补 =[X]补+[-Y]补 • 由 [X-Y ]补= 1111 0100 • [X-Y ]反= 1111 0100 –1=1111 0011 • [X-Y ]原 = 1000 1100 • 所以 X-Y = -000 1100B • =-12D • 补码的减法规则也是正确的,事实上就是加法规则

  38. 6、二进制编码 • 二进制编码是指用二进制代码来表示计算机中所要处理的数值、数字、字母和符号等,一般为若干位二进制数码的组合。 • (1)二进制编码的十进制数 • (2)字母和字符的编码

  39. (1)二进制编码的十进制数 • 二进制编码的十进制数就是BCD码(Binary Coded Decimal)。 • ①压缩BCD码 是用4位二进制数表示一位十进制数。一个字节表示两位十进制数。 • 如:1001 0110B 表示 96D • ②非压缩BCD码 是用一个字节表示一位十进制数。高4位总是0。 • 如: 0000 1001B 表示 9D • 两种BCD码的编码对照表

  40. 两种BCD码的编码对照表

  41. (2)字母和字符的编码 • 计算机不仅要处理数值问题,还要处理大量的非数值问题,这就必须引入文字、字母,某些专用的符号,这就是目前应用最广泛的字符编码系统ASCII码。 • (American Standard Code for Information Interchange,美国信息交换标准码) • 例:大写字母“A”的ASCII码就是41H ; • 小写字母“n”的ASCII码就是6EH ; • 数字“8”的ASCII码就是38H ;

  42. American Standard Code for Information Interchange美国信息交换标准码

  43. 三、 计算机中数的运算方法 • 1、补码的加减法运算 • 2、溢出判断 • 3、逻辑运算

  44. 1、补码的加减法运算 • 规则 • [X +Y]补= [X]补+[Y]补 • [X -Y]补= [X +(-Y)]补 =[X]补+[-Y]补 • 因此,加法或减法都是用补码的加法来进行运算的。

  45. 2、溢出判断 • 例: X=+100 0101 ,Y= +110 0111 ,求X+Y=? • 解: [X]原=[X]反=[X]补=0100 0101 • [Y]原=[Y]反=[Y]补=0110 0111 • [X]补= 0100 0101 (69D) • +) [Y]补= 0110 0111 (103D) • [X]补+[Y]补= 1010 1100(172D) • 因此,得 [X+Y ]补= 1010 1100 • 由于其符号位是1,表明X+Y的真值是负数,这显然与实际情况不符合,出错?

  46. 2、溢出判断 • 例:分析:8位字长的计算机可以表示的数据范围? • (1)不带符号数,8位全部是数据,M=28=256D • (2)带符号数,1位是符号,7位是数据, • M=27=128D • 因此8位字长的计算机表示带符号数时,128D=0, • 而 X+Y =69D+103D=172D>128D • 两数之和超出了8位字长的计算机可表示的范围,计算出错!

  47. 2、溢出判断 • 例: X=0100 0101 ,Y= 0110 0111 , • 而,[X]补+[Y]补= 1010 1100 • 结论: 当两个正数相加时,其和变成负数,我们称这情况为溢出。同样当两个负数相加,其和变成正数,亦为溢出。 • 当计算机发生溢出时,其计算结果肯定是错误的。

  48. 3、逻辑运算 • 计算机中的逻辑运算包括 • (1)逻辑“或” • (2)逻辑“与” • (3)逻辑“非” • (4)逻辑“异或”

  49. (1)逻辑“或”(OR) • 符号“∨”(或“+”),按位或运算 • 运算规则(1)0∨0=0 • (2)0∨1=1 • (3)1∨0=1 • (4)1∨1=1 • 例 0101 0101∨1100 1010=? • 0101 0101 • ∨ 1100 1010 • 1101 1111

  50. (2)逻辑“与”(AND) • 符号“∧”(或“ · ”),按位与运算 • 运算规则(1)0 ∧ 0=0 • (2)0 ∧ 1=0 • (3)1 ∧ 0=0 • (4)1 ∧ 1=1 • 例 0101 0101∧1100 1010=? • 0101 0101 • ∧ 1100 1010 • 0100 0000

More Related