1 / 51

数制与码制 复习

数制与码制 复习. 2011 年 7 月. 控制科学与工程学院. 1. 数制 常用数制 数制间的转换 二进制数的运算 2. 码制 机器数与真值 原码、反码及补码 常用编码. 微型计算机中的常用数制. 微型计算机中常用的数制有三种: 十进制数 二进制数 十六进制数. 1 . 十进制数 十进制数是我们最熟悉的一种进位计数制, 其主要特点是: (1) 它由 0 、 1 、 2 、 3 、 4 、 5 、 6 、 7 、 8 、 9 不同的基本数码符号构成,基数为 10 。 (2) 进位规则是“ 逢十进一 ”,一般在数的后面加符号 D 表示十进制数。

olaf
Télécharger la présentation

数制与码制 复习

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. 数制与码制复习 2011年7月 控制科学与工程学院

  2. 1. 数制 • 常用数制 • 数制间的转换 • 二进制数的运算 • 2. 码制 • 机器数与真值 • 原码、反码及补码 • 常用编码

  3. 微型计算机中的常用数制 微型计算机中常用的数制有三种: • 十进制数 • 二进制数 • 十六进制数

  4. 1.十进制数 十进制数是我们最熟悉的一种进位计数制, 其主要特点是: (1)它由0、1、2、3、4、5、6、7、8、9不同的基本数码符号构成,基数为10。 (2)进位规则是“逢十进一”,一般在数的后面加符号D表示十进制数。 所谓基数,在数学中指计数制中所用到的数码的个数。

  5. 2.二进制数 二进制数是计算机内的基本数制,其主要 特点是: (1) 任何二进制数都只由0和1两个数码组 成,其基数是2。 (2)进借位规则是“逢二进一,借一当二”。 一般在数的后面用符号B表示这个数是二进制数。 二进制数同样可以用幂级数形式展开。

  6. MSB LSB 位号: D7 D6 D5 D4 D3 D2 D1 D0 (3) 字节byte:8位二进制数约定为1字节 字节: 一个字节可表示28个值(0~255) LSB: 最低有效位,D0位 MSB:最高有效位,D7位

  7. (4) 字word:2字节,16位二进制数 一个字有216个值(0~65535) LSB: 最低有效位, D0位 MSB: 最高有效位, D15位

  8. 3.十六进制数 在微机软件编程时,十六进制数常用于代码和数据的缩写,其主要特点是: (1) 十六进制数由16个数符构成:0、1、2、…、9、A、B、C、D、E、F,其中A、B、C、D、E、F分别代表十进制数的10、11、12、13、14、15,其基数是16。 (2) 进借位规则是“逢十六进一,借一当十六”。一般在数的后面加一个字母H表示是十六进制数。

  9. 各种进位制的对应关系

  10. 数制间的转换 1.二进制数与十六进制数的转换 (1) 二进制数转化成十六进制数 采用四位二进制数合成一位十六进制数的方法,以小数点开始分成左侧整数部分和右侧小数部分。 二进制数转换十六进制数: 0001 1011 1110 0011 . 1001 0111 1000B 1 B E 3 . 9 7 8H

  11. 将十六进制数的每位分别用四位二进制数码表示,然后把它们连在一起即为对应的二进制数。将十六进制数的每位分别用四位二进制数码表示,然后把它们连在一起即为对应的二进制数。 十六进制数转换为二进制: 9 A B . 7 C 5 H 1001 1010 1011 . 0111 1100 0101B (2) 十六进制数转换成二进制数

  12. 2. 二进制数与十进制数间的转换 (1)二进制数转换成十进制数 将二进制数按权展开后相加即得到对应的十进制数。 各位的权为进制r的相应次幂 例 将1001B转换成十进制数。 解:按权相加得: 1001B = 1×23+1×20 = 8+1 = 9D = 9 其中,十进制数的后缀“D”可省略。

  13. 小数的转换 对于小数, 0.101B = 1×2-1 + 0×2-2 + 1×2-3 = 0.625D 二进制数每一位的权是:以小数点分界, …..24 , 23 , 22 , 2 1, 2 0 . 2-1, 2-2, 2 -3, ……

  14. 十进制数的整数部分和小数部分转化成二进制数的方法不同,要将它们分别转换,然后将结果合并到一起即得到对应的二进制数。十进制数的整数部分和小数部分转化成二进制数的方法不同,要将它们分别转换,然后将结果合并到一起即得到对应的二进制数。 ①十进制整数转成二进制整数的常用方法是“除2取余法”,即用2连续去除要转换的十进制数和所得的商,直到商小于2为止,依次记下各个余数,然后按最先得到的余数为最低位,最后得到的余数为最高位依次排列,就得到转换后的二进制整数。 (2) 十进制数转化成二进制数

  15. 例1、将十进制数45转换成二进制数。 2 45 余数 2 22 1 11 0 2 2 5 1 1 2 2 2 1 0 1 0 即 45 = (101101)B

  16. ②十进制小数转换成二进制小数的常用方法是“乘2取整法”,即用2连续去乘要转换的十进制小数部分和前次乘积后的小数部分,依次记下每次乘积的整数部分,直到小数部分为0或满足所需要的精度为止,然后按最先得到的整数为二进制小数的最高位,最后得到的为最低位依次排列,就得到转换后的二进制小数。②十进制小数转换成二进制小数的常用方法是“乘2取整法”,即用2连续去乘要转换的十进制小数部分和前次乘积后的小数部分,依次记下每次乘积的整数部分,直到小数部分为0或满足所需要的精度为止,然后按最先得到的整数为二进制小数的最高位,最后得到的为最低位依次排列,就得到转换后的二进制小数。

  17. 0.6875 ×2 最高位 取 1 1.3750 0.375 × 2 取 0 0.750 × 2 取 1 1. 50 0.5 × 2 最低位 取 1 1. 0 从上至下写成从左至右 0.6875D = 0. 1011 B

  18. 例 将45.6789转换为二进制数,其中二进制小 数保留4位。 解: ∴ 45.6789 = 101101.1011B

  19. 3.十六进制数和十进制数间的转换 (1)十六进制数转换成十进制数 将十六进制数按权展开后相加即得到对应的十进制数。 例1.5 将十六进制数3FEA换成十进制数。 解:3FEAH = 3×163+15×162+14×161+10×160 = 16362 D = 16362 3AB . 11H = 3×162+A×161+B×160+1×16-1+1×16-2 =939 . 0664 D

  20. (2) 十进制数转换成十六进制数 与十进制数转换成二进制数类似, 十进制整数部分采用“除16取余逆排法”, 十进制小数部分采用“乘16取整顺排法”。

  21. 例 将3901.76171875转换成十六进制数。 ∴ 3901.76171875=F3D.C3H

  22. 二进制数的运算 • 算术运算 • (1) 加法运算 运算规则为:0+0=0 、1+0=0+1=1、 1+1=10(向高位有进位)。 • (2) 减法运算 运算规则为:0-0=0、1-0=1、1-1=0、 0-1=1(向高位借1当作2)。

  23. (3) 乘法运算 运算规则为:0×0=0、0×1=1×0=0、 1×1=1。 • (4) 除法运算 除法运算是乘法运算的逆运算。与十进制类似,从被除数最高位开始取出与除数相同的位数,减去除数。

  24. 逻辑运算 微机内二进制信息的逻辑运算由专门的逻辑电路完成。 (1) 逻辑与运算 逻辑与常用符号“&”表示,运算规则为: • 0&0=0,1&0=0,0&1=0,1&1=1 • 两个位数相同的二进制数进行逻辑与时,只是对应位进行与运算。

  25. (2) 逻辑或运算 逻辑或又称为逻辑加,常用符号“”表示,其运算规则为: 0 0=0,1 0=1,0 1=1,1 1=1。 (3) 逻辑非运算 逻辑非运算又称逻辑取反,常用运算符号“~”表示.

  26. (4) 逻辑异或运算 逻辑异或又称半加,是不考虑进位的加法,常用运算符号^表示。 例72H ^ABH = ? 解:0111 0010 B ^ 1010 1011 B 1101 1001 B ∴ 72H ^ ABH = 11011001B = D9H

  27. 1. 数制 • 常用数制 • 数制间的转换 • 二进制数的运算 • 2. 码制 • 机器数与真值 • 原码、反码及补码 • 常用编码

  28. 机器数与真值 • 在计算机内部,所有信息都是用二进制数串(0、1)的形式表示的。 • 整数通常都有正负之分,计算机中的整数分为无符号的和带符号的。 • 无符号的整数用来表示0和正整数, • 带符号的整数可以表示所有的整数。 • 由于计算机中符号和数字一样,都必须用二进制数串来表示,因此,正负号也必须用0、1来表示。

  29. 通常我们用最高的有效位来表示数的符号(当用8位来表示一个整数时,第8位即为最高有效位,当用16位来表示一个整数时,第16位即为最高有效位。)通常我们用最高的有效位来表示数的符号(当用8位来表示一个整数时,第8位即为最高有效位,当用16位来表示一个整数时,第16位即为最高有效位。) • 0表示正号、1表示负号。 • 这种正负号数字化的机内表示形式就称为“机器数”, • 相应的机器外部用正负号表示的数称为“真值”。 • 将一个真值表示成二进制字串的机器数的过程就称为编码。

  30. 机器数 • 机器数分为无符号数、有符号数 • 无符号数如: 00000001、10010011、01010010、 …… 等等, 范围: 00H ~ FFH。 • 有符号数如: • +1010110B(+56H)、-1101001B(-69H) 真值 真值 机器数 01010110B、 11101001B 56H E9H

  31. 原码、反码和补码 • 无符号数没有原码、反码和补码一说。只有带符号数才存在不同的编码方式。 • 计算机内一般使用补码。 • (1)原码 • “+”用0表示,“-”用1表示,数值部分为该数本身,这样的机器数叫原码。 • 如,[+3]原= 0000 0011B • [-3]原= 27 - (-3) = 1 000 0011B • 0有两种表示方法:00000000 —— +0 • 10000000 —— -0 • 原码最大、最小的表示:+127、-127

  32. (2)反码 • 正数的反码等于原码 • 负数的反码是将原码的数值位各位取反 • [+4]反= [+4]原= 0000 0100 B • [-5]反= 1 111 1010 B • 反码范围:-127 ~ +127 • 两个0: +0 —— 00000000 B • -0 —— 11111111 B

  33. 12 3 (3)补码 计算机中,带符号数的运算均采用补码。 • 正数的补码与其原码相同; • 负数的补码为其反码末位加1。 • 补码的概念:现在是下午3点,手表停在12点,可正拨3点,也可倒拨9点。即是说-9的操作可用+3来实现,在12点里:3、-9互为补码。 • 运用补码可使减法变成加法。

  34. 如,设X = - 0101110 B , 则[X]原= 1 0101110 B • 则[X]补= [X]反+ 1 = 1 1010001 + 00000001 = 11010010 B • 如,[+6]补= [+6]原= 00000110 B • [-6]补= 1 111 1001 +0000 0001= 1111 1010 B • 8位补码的范围 –128 ~ +127。 • 0 的补码:只一个,即00000000 • 而10000000 B是-128的补码。 • 原码、反码、补码对照表:见下表 • 注意,只是带符号的整数采用补码存储表示的,浮点数另有其存储方式。

  35. 八位二进制数所能表示的数据范围 机器数 无符号数 原码 反码 补码 00000000 0 +0 +0 +0 00000001 1 +1 +1 +1 . . . . . 01111111 127 +127 +127 +127 10000000 128 -0 -127 -128 10000001 129 -1 -126 -127 . . . . . . . . . . 11111110 254 -126 -1 -2 11111111 255 -127 -0 -1

  36. (4)补码的运算 当X≥0时,[X]补= [X]反=[X]原 [ [X]补]补= [X]原[X]补+ [Y]补= [ X+Y ]补 [ X-Y ]补= [ X+(-Y)]补 例:已知X=52 Y=38 求X-Y 减法运算结果: X-Y = 52-38 =14 [52]原 0 0 1 1 0 1 0 0 [38]原 -) 0 0 1 0 0 1 1 0 [14]原 0 0 0 0 1 1 1 0

  37. 计算机运算过程: 用补码加法实现减法 X-Y = [ [ X-Y]补]补 = [ [X]补+[-Y]补]补 =[ [52]补+[ -38]补]补 =[ 14 ]补=14 [52]补: 0 0 1 1 0 1 0 0 [-38]补:+) 1 1 0 1 1 0 1 0 1 0 0 0 0 1 1 1 0 自然舍弃

  38. 采用补码运算具有如下特征: • 因为使用补码可以将符号位和其他位统一处理(采用原码和反码表示时,符号位不能同数值一道参加运算) • 减法也可以按加法来处理,即如果是补码表示的数,不管是加减法都直接用加法运算即可实现。 • 两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃

  39. 这样的运算有两个好处: • 使符号位能与有效值部分一起参加运算,从而简化运算规则。从而可以简化运算器的结构,提高运算速度;(减法运算可以用加法运算表示出来。) • 加法运算比减法运算更易于实现。使减法运算转换为加法运算,进一步简化计算机中运算器的线路设计。

  40. 常用编码 • 对机器:二进制数方便, • 对人 :二进制数不直观,习惯于十进制数。 • 在编程过程中,有时需要采用十进制运算,但机器不认识十进制数。 • 怎么办? • BCD码 • ASCII码

  41. 1.BCD码 BCD码是将每一位十进制数用二进制数编码,它保留了十进制的权,数字则用二进制数表示,因而也称为二-十进制数。一般用标识符[…]BCD表示。BCD码种类较多,如8421码、2421码、格雷码等,其中最常用的编码为8421码。

  42. (1)  8421码编码方法 8421码编码原则是每位十进制数用4位二进制数来表示,8、4、2、1代表4位二进制数每一位的权。8421码名称也由此而得。十进制数共有0~9十个数字,而4位二进制数共有16种组合。8421码用其中0000B~1001B组合表示0~9十个十进制数。而1010B~1111B六个编码舍去不用。它们之间的对应关系如表所示。

  43. 8421码与十进制数的对应关系

  44. (2)  BCD码的运算 BCD码用4位二进制数表示0~9十个十进制数,但4位二进制数可表示16种状态。因而有六种状态在BCD编码中为非法码。这样在BCD码的运算中必须进行修正才能得到正确的结果。

  45. 压缩的BCD码 它是一种用4位二进制数表示十进制数. 首先是用四位二制数表示个位,然后用四位二进制数表示十位, 然后百位...。 比如:251需要三个四位二进制数表示。 1表示为0001;5表示为0101;2表示为0010. 最后251的BCD数据表示为0010 0101 0001. 非压缩BCD码 非压缩的BCD码用8位二进制数表示一个十进制数位,其中低4位是BCD码,高4位是0。 251的非压缩BCD数据表示为00000010 00000101 00000001. 采用压缩BCD码比采用非压缩BCD码节省存储空间。

  46. BCD码与二进制数区别 • 当用来表示十进制数字0-9时,用二进制代码与8421BCD代码完全相同。 • 而当表示的十进制数字大于9时,用二进制代码与8421BCD代码表达就完全不同了。 • 用二进制表示就是二进制数字安权重求和,其值为十进制数字; • 用8421BCD代码则是每一位十进制数字都用4位8421BCD代码表示。如十进制数字15,转化为二进制为1111;用8421BCD码表示为0001 0101。

  47. 2. ASCII码 • 计算机不仅要认识各种数字,还要能识别各种文字符号。 • 计算机能识别0、1、0、1、……;这些0、1、0、1、……有的代表数值,有的仅代表要处理的信息(如字母、标点符号、数字符号等文字符号) • 人们事先已对各种文字符号进行二进制数编码。

  48. ASCII码(American Standard Coded for Information Interchange)是“美国信息交换标准码”的简称,后来由国际标准组织(ISO)确定为国际标准字符编码。它是微机中最常使用的字符编码。 ASCII码由7位二进制码构成,可表示128(27=128)个字符,ASCII码表见表 。

  49. 综上所述, 计算机中的数可以有各种不同的表示方法, 计算机中以一个字节为一个单元保存数据, 一个字节为8位二进制数,可以有256种组合, 也就是可以表示256个数据, 我们称它为机器数,每一个机器数实际表示的是什么, 要看采用的是哪种表示方法。

More Related