1 / 130

第二章 微型计算机基础知识 本章学习目标 掌握微型计算机中的数制及其编码 掌握布尔代数和常见逻辑电路 了解微型计算机的常用技术术语和技术

第二章 微型计算机基础知识 本章学习目标 掌握微型计算机中的数制及其编码 掌握布尔代数和常见逻辑电路 了解微型计算机的常用技术术语和技术. §1 微型机中的数制及其编码. 一、数与数制 进位计数制,简称数制。 十进制: 人们习惯采用的计数制是十进制。 0—9 十个不同的基数,逢十进一。 用 D 表示或省略。 二进制: 计算机所采用的计数制是二进制。 只有 0 、 1 两个不同的基数,逢二进一。 用 B 表示。 因为计算机用晶体管截止、饱和两个状态下的输出电平 1 、 0 表示数字。.

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. 第二章 微型计算机基础知识 本章学习目标 • 掌握微型计算机中的数制及其编码 • 掌握布尔代数和常见逻辑电路 • 了解微型计算机的常用技术术语和技术

  2. §1微型机中的数制及其编码 一、数与数制 进位计数制,简称数制。 • 十进制:人们习惯采用的计数制是十进制。 0—9 十个不同的基数,逢十进一。 用D表示或省略。 • 二进制:计算机所采用的计数制是二进制。 只有0、1两个不同的基数,逢二进一。 用B表示。 因为计算机用晶体管截止、饱和两个状态下的输出电平1、0表示数字。

  3. 十进制与二进制转换 • 人机交互时采用十进制,计算机内数据存储、计算、处理用二进制,需要需要进行转换。在计算机中的解决方法是,利用接口技术作转换。 如:用键盘输入数据时使用十进制数,即输入电路使用的键盘是十进制数,输入接口电路将十进制数转换为二进制数后送到机器内部;

  4. 二、不同数制之间的转换 1、十进制数转换为二进制数 • 十进制数转换为二进制数的方法 • 整数部分转换方法:除以2取余,直到商为0为止。最后将所有余数倒序排列,得到转换结果。 • 小数部分转换方法:乘以2取整,直到满足精度要求为止。

  5. 例1:将十进制数100转换为二进制数 • (100)10=(01100100)2 • 或者表示为: • 100D=01100100B

  6. 例2:将十进制数45.613转换成二进制数 45.613≈(101101.100111)2 或45.613D≈101101.100111B

  7. 2、二进制数转换为十进制数 • 转换方法:按权展开相加。 例如,一个8位的二进制数的各位的权值依次是27 、26 、 25、… 、20。 如将10110110B转换为十进制数的方法是: 即,(10110110)2 =(182)10或者表示为: 10110110B=182D

  8. 3、十六进制数 • 优点:二进制数位数较多时,读写不方便。而使用十六进制表示简明。 • 十六进制数表示: 0~9、A、B、C、D、E、F十六个不同的基数 逢十六进一 用H表示。

  9. 二进制数转换为十六进制数 原理:四位二进制数对应一位十六进制,所以二进制整数转换为16进制时,从最低位开始,每四位一组(不足四位时高位补0)转换成一位十六进制数据即可。 例如:1011 0110B=B6H。

  10. 十六进制数转换为二进制数 • 十六进制数据转换为二进制数据时,把每一位十六进制数据直接写成四位二进制数。 • 例如:64H=0110 0100B

  11. 4位二进制数和一位十六进制数具有一一对应的关系。4位二进制数和一位十六进制数具有一一对应的关系。 表2-1 4位二进制数和一位十六进制数的对应关系

  12. 十六进制数据和十进制数据之间的转换 • 通过二进制转换; • 将十进制整数除以十六取余,小数部分乘以十六取整,可直接转换为十六进制数; • 将十六进制数按权展开相加得到十进制数。 n+1位十六进制数的权值分别为16n、16n-1、…、162、161、160

  13. 三、数制数据的编码及其运算 在计算机中,数据分无符号数和带符号数。 • 无符号数用整个机器字长的全部二进制位表示数值位, 无符号位; • 带符号数用最高位表示该数的符号位。 带符号数又有原码、补码和反码三种形式。

  14. 1、原码表示法 • 由于计算机中只能有0、1两种数,不仅数的数值部分在计算机中用0、1编码的形式表示,正、负号也只能用0、1编码表示。 • 一般用数的最高位(Most Significant Bit,MSB)表示数的正负符号。 • 原码表示法:一个数连同它的符号在机器中使用0、1进行编码。

  15. 例如,若用5位二进制数表示数据时,最高位表示符号,0表示正数,1表示负数,余下的四位表示数据:例如,若用5位二进制数表示数据时,最高位表示符号,0表示正数,1表示负数,余下的四位表示数据: MSB=0表示正数,如+1011B表示为01011B; MSB=1表示负数,如-1011B表示为11011B。

  16. 机器数和真值 • 把一个数在机器内的二进制形式称为机器数。 • 把这个数本身称为该机器数的真值。 上例的“01011B”和“11011B”就是两个机 器数。 它们的真值分别为+1011B和-1011B。

  17. 真值为纯小数时,其原码形式为XSX1X2…Xn,其中XS表示符号位。例如,真值为纯小数时,其原码形式为XSX1X2…Xn,其中XS表示符号位。例如, 若X=0.0110,则[X]原=X=0.0110; 若X=-0.0110,则[X]原=1.0110 • 真值为纯整数时,其原码形式为 XSXnXn-1…X2X1,其中XS表示符号位。

  18. 8位二进制原码的表示范围为: -127~ -0 ~ +0~+127 16位二进制原码的表示范围为: -32767~ -0 ~ +0~+32767 原码表示中,真值0有两种不同的表示形式: [+0]原=00000, [-0]原=10000

  19. 无符号数 没有符号位的数,称为无符号数。 无符号数的最大值比有符号数大一倍。 如字长为8位时,能表示的无符号数的最大值为11111111B,即255,而8位有符号数的最大值是01111111B,即+127。

  20. 8位二进制无符号数的表示范围为:0~255 16位二进制无符号数的表示范围为:0~65535 • 原码的优点是直观易懂,机器数和真值间的转换很容易,用原码实现乘、除运算的规则简单。缺点是加、减运算规则较复杂。

  21. 原码计算存在的问题 直接用0、1表示正、负,运算时带来的问题:有符号数和无符号数的表示形式并没有任何区别,所以,CPU在进行运算时,并不知道参与运算的数是有符号数还是无符号数,在进行有符号数的运算时,会将符号也当作是数值进行运算,因而有时会出现错误的结果。

  22. 两个正数相加时,符号位也同时相加 • 若两个数之和不超出其所能表示的最大值127时,符号位相加:0+0=0,即和仍然为正数,结果正确。 • 若两个数之和超出了其所能表示的最大值127时,就会产生数字位向符号位的进位,两个符号位相加0+0=0,再加上低位进上来的1,则符号位为1,作为有符号数,表示两个正数相加的和为负数,显然是不对的。

  23. 例1,两个有符号正数01010111B(87D) 和00010110B(22D)相加。 其和为1101101B,即十进制的109<127, 符号位为0,表示和为正数,结果正确。

  24. 例2,两个有符号正数00110111B(55D)和01011101B(93D)相加。例2,两个有符号正数00110111B(55D)和01011101B(93D)相加。 和应为+148,但符号位为1,表示和是负数,错误。 产生错误的原因是:相加的和是148>127, 超出了8位有符号正数所能 表示的最大值,对于有 符号数,这种数值运算 侵入到符号位造成结果 错误的情况,称为溢出。

  25. 一个正数与一个负数相加,和的符号位不应是两个符号位直接运算的值:0+1=1。一个正数与一个负数相加,和的符号位不应是两个符号位直接运算的值:0+1=1。 和的符号位应由两数中绝对值大的数所决定。 • 两个负数相加时,由于1+1=10,符号位只表示0,因此和的符号也不应是由两符号位直接运算的结果所决定。 • 为解决机器内有符号数的符号位参加运算的问题,引入了反码和补码。

  26. 2、反码表示法 • 对正数来说,其反码和原码相同。 即[X]原=[X]反。 • 对负数来说,反码为其原码的符号位不变,数值部分的各位取反。 • 在反码表示中,真值0也有两种不同的表示 形式: [+0]反=00000B [-0]反=11111B

  27. 真值、原码、反码的不同表示  X   [X]原[X]反 +1101B01101B01101B -1101B11101B10010B

  28. 反码运算要注意以下三个问题: • 符号位可与数值位一样参加运算。 • 符号位运算后如有进位产生,则把这个进位送回到最低位去相加,这叫循环进位。 • 反码运算具有性质:[X]反+[Y]反=[X+Y]反

  29. 3、补码表示法 • 同余的概念 两整数A和B除以同一正整数M,所得余数相 同,则称A和B对M同余。 可写成:A=B(mod M) 例如:对钟表来说,其模M=12,故4点和16 点、5点和17点…均是同余的。 4=16(mod 12),5=17(mod 12)

  30. 指针式钟表的校准(快两个小时) • 方法一:往回拨两个小时 • 方法二:往前拨10个小时,结果相同。 钟表按照12小时循环计数,一旦加到大于12小时时,就会将12舍弃,计为0点。

  31. 这种按照周期循环的数的周期叫做模,这里模是12,数一旦大于或等于其模,就会被自动舍弃。这种按照周期循环的数的周期叫做模,这里模是12,数一旦大于或等于其模,就会被自动舍弃。 • 所以,5+10-12=3,而5-2=5+10-12=5+(10-12),10可看作-2的补码。 即以12为模时,-2和10同余。同余的两个数具有互补关系, -2与10对模12互补,即-2的补码是10。

  32. 可见,只要确定了“模”,就可找到一个与负数等价的正数( 该正数是负数的补码 )来代替此负数,这个正数可用模加上负数本身求得,这样就可把减法运算用加法实现了。

  33. 补码的概念: • 知道模的大小,求某个负数的补码时,只要将该负数加上其模,就得到它的补码。 • 如以“10”为模,“-7”的补码为 (-7)+10= 3 (mod 10) 这时“3”就是“-7”的补码。

  34. 某一正数加上一个负数时,实际上是做一次减法。引入补码概念之后,可将该正数加上这个负数的补码,最高位产生的进位会自然丢失,所以得到的结果同样是正确的。某一正数加上一个负数时,实际上是做一次减法。引入补码概念之后,可将该正数加上这个负数的补码,最高位产生的进位会自然丢失,所以得到的结果同样是正确的。 例如,当模为10时, 7+(-7)= 7+(-7+10)=7+3 =10=10-10 = 0(mod 10) 又如, 7+(-4)=7+(-4+10)=7+6=13=13-10=3 (mod 10)

  35. 以2n为模的补码 在计算机中,带符号的数用二进制补码表示。存放数据的存储器的位数都是确定的。如每个存数单元的字长为n位,则它的模就是2n。 2n是n+l位的二进制数100…0B(1后面有n个0),由于机器只能表示n位数,因此数2n在机器中仅能以n个0来表示,而该数最高位的数字1就被自动舍弃了。则以2n为模时2n和0在机器中的表示形式是完全一样的。

  36. 如果将n位字长的二进制数的最高位留做符号 位,则数字只剩下n-1位,下标从n-2到0,数 字X 的补码(以2n为模)的表示形式为: • 当X为正数时,即X=+Xn-2Xn-3…X1X0时, [X]补=2n+X =0 Xn-2Xn-3…X1X0 (mod2n) =[X]原

  37. 当X为负数时,即X=-Xn-2Xn-3…X1X0时,

  38. 例如,n=8时,28=100000000B,则 -1010111B的补码为: [-1010111B]补=100000000B-1010111B =10101001B 或[-1010111B]补=[-1010111B]反+1 =10101000B+1 =10101001B

  39. 正数:补码和原码的形式相同: [X]原=[X]补; • 负数:补码为其反码(数值部分各位变反)加1。 例如: X   [X]原[X]反[X]补 正数 +0001101B 00001101B 00001101B 00001101B 负数 -0001101B 10001101B 11110010B 11110011B

  40. 不论是正数,还是负数,反码与补码具有 下列相似的性质: [[X]反]反=[X]原 [[X]补]补=[X]原

  41. 【例2-1】+13和-13的原码、反码、补码以及反码的反码和补码的补码如下:【例2-1】+13和-13的原码、反码、补码以及反码的反码和补码的补码如下: X[X]原 [X]反 [X]补 [[X]反]反 [[X]补]补 +0001101B 00001101B 00001101B 00001101B 00001101B 00001101B -0001101B 10001101B 11110010B 11110011B 10001101B 10001101B

  42. 表2-2 8位二进制数的原码、反码、补码的表示

  43. 可见, 8位字长,原码、反码表示的数的 范围为+127~-127,而补码表示的数的范围为+127~-128。 下面对两个特殊的数的补码作进一步说明: • 0的补码 [+0]补=00000000B [-0]原=10000000B,经求反加1,得00000000B, 所以,[-0]补=00000000B。 即,对补码, [+0]补= [-0]补=00000000B

  44. -128的补码 根据补码的定义, [-128]补= 28+(-128) = 28+(-127)-1 =100000000B-1111111B-1 =100000001B-1 =10000000B

  45. 数值数据的运算 采用补码进行加减运算时要注意以下几个问题: • 溢出 补码运算时,其符号位与数值部分一样参加运算,但 结果不能超出其所能表示的数的范围,否则会出现溢出错 误。 无符号数的加减运算结果超出数的范围的情况叫做进位 或借位,计算机中有专用的标志位作记录,只要适当处理 这些标志,结果就不会出错,所以在多字节数的加减运算 时必须考虑进位和借位的处理。

  46. 采用了补码以后,符号运算后如出现进位,则把这个进位舍去不要,不影响运算结果,运算后的符号就是结果的符号。采用了补码以后,符号运算后如出现进位,则把这个进位舍去不要,不影响运算结果,运算后的符号就是结果的符号。 • 补码运算的性质: [X]补+[Y]补=[X+Y]补 [X]补-[Y]补=[X-Y]补 • 以上运算性质,与数的位数n无关。

  47. 下面以二进制数的补码运算为例,说明有符号数的下面以二进制数的补码运算为例,说明有符号数的 运算性质 【例2-2】已知:X=+0101101B Y=-0000001B 求X+Y=? 解:     [X]补= 00101101       +[Y]补= 11111111 [X+Y]补 = 100101100 进位舍去不要 X+Y=[[X+Y]补]补=0101100B=[X]补+[Y]补

  48. 【例2-3】 已知:X=-0001101B Y=-0000001B 求:X+Y=? 解:     [X]补 = 11110011       +[Y]补 = 11111111 [X+Y]补 = 111110010     进位舍去不要 所以,X+Y=[[X+Y]补]补=-0001110B

  49. 【例2-4】 已知:X=+1 Y=-128 求:X+Y=? 解:     [X]补=00000001       +[Y]补=10000000 [X+Y]补=10000001 所以,X+Y=[[X+Y]补]补=11111111B =-127

  50. 加法器就能完成所有的算术运算 • 加法算减法:因为减去一个正数的减法运算可以看作是加上一个负数的加法运算,所以在计算机中,求得补码之后,就把减一个正数的运算转变为加上该负数的补码的加法运算。 • 加法算乘法:可以采用移位相加的方法完成。 • 加法算除法:采用移位相减的方法完成,这样只用加法器就能完成所有的算术运算。

More Related