网站大量收购独家精品文档,联系QQ:2885784924

24 二进制数和十六进制数的算术运算.doc

  1. 1、本文档共49页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
24 二进制数和十六进制数的算术运算

数 据 表 示 在学习汇编语言的时候,许多初学者遇到的主要障碍都是二进制和十六进制数字系统的用法。虽然十六进制数与通常所用的数的确存在一些差异,但是它们的优点远远大于缺点。理解这些数字系统是很重要的,因为它们简化了许多复杂的问题,包括位运算、有符号数的表示、字符代码以及压缩数据。 本章将讨论几个重要的概念,其中包括: 二进制和十六进制数字系统 二进制数据的结构(位、半字节、字节、字以及双字) 二进制的有符号和无符号数字系统 二进制值的算术、逻辑、移位以及循环移位运算 位域和压缩数据 这些都是基础知识,本书剩下的部分将依赖于对这些概念的理解。如果您已经在其他课程或者研究中熟悉了这些术语,那么在学习第3章之前至少应该复习一下这些内容。如果您对它们还不熟悉,那么应该认真学习本章内容。本章的内容非常重要,千万不要跳过任何基础知识。 2.1 数字系统 现代的计算机系统大多数都不用十进制数字系统来表示数值。它们一般都采用二进制或者二进制补码数字系统。 2.1.1 回顾十进制系统 由于人们使用十进制数字系统的时间已经很长了,以至于都认为它是理所当然的。当看到数字“123”时,您不会去考虑数值123,而是在大脑中考虑该数值代表了多少项。实际上,数字123表示的是: 或者 100+20+3 在十进制位置数字系统当中,小数点左边的每一位数字都代表0~9之间的数值乘以10的递增次幂。小数点右边的数字都代表0~9之间的数值乘以10的递减负次幂。例如,数值123.456可表示为: 或者 100+20+3+0.4+0.05+0.006 2.1.2 二进制数字系统 现代的计算机系统大多都采用二进制逻辑进行操作。计算机使用两个电平(通常是0v和+2.4~5v)来表示数值。有了这两个电平,我们就正好可以表示两个不同的数值。它们可以是任意两个不同的数,但一般都表示0和1。这两个数同时对应于二进制数字系统中所使用的两个数字。 二进制数字系统与十进制系统的原理相同,但有两点差别:二进制只使用数字0和1(而不是0~9),并且二进制使用2的幂而不是10的幂。因此,将二进制数转换为十进制数非常容易。二进制串中的每个“1”,都要加上2n,其中n是从0开始排序的二进制数字的位置数。例如,二进制数值110010102表示: 1*27 +1*26 +0*25 +0*24 +1*23 +0*22 +1*21 +0*20 = 128 +64 +8 +2 = 20210 将十进制数转换为二进制数要稍微复杂一些。必须要找到那些加到一起时得到十进制结果的2的幂数。 一种简单的方法叫做“偶/奇-除2”算法。该算法的步骤如下所示: (1) 如果是偶数,就得到一个0;如果为奇数,就得到一个1。 (2) 用2来除这个数并舍弃小数部分或者余数。 (3) 如果商为0,算法就完成了。 (4) 如果商不是0而是奇数,就在现有的二进制串之前插入一个1;如果该数为偶数,那么就在二进制串之前附加一个0。 (5) 返回步骤(2),再重复进行。 虽然在高级语言中,二进制数并不重要,但它们在汇编语言中却处处可见。所以您应该熟悉它们。 2.1.3 二进制格式 从最纯粹的意义上来说,每个二进制数都包含无数个数字(或位(bit),它是二进制数字(binary digit)的简写)。例如,我们可以用下面任何一种方式来表示数字5: 101 0000000000101 …000000000000101 二进制数前面可以加任意多个前导0,而不会改变它的值。 我们遵守一个约定,如果在数值中出现了前导0,就将它们都忽略掉。例如,1012表示数值5,但是由于80x86一般都对8位数进行操作,我们发现用0将所有的二进制数扩展为4位或者8位的若干倍,处理起来会容易得多。因此根据这个约定,我们将数字5表示为01012或者000001012。 在美国,为了能使一些比较大的数更容易读,大多数人都将每三位用逗号隔开。例如,1,023,435,208就比1023435208读起来和理解起来更容易。在本书中我们将对二进制数采用相似的约定,将每四个二进制位分为一组并用下划线来分隔。例如,我们将二进制数1010111110110010写成1010_1111_1011_0010。 我们将采用下面的方式对每一位进行编号: (1) 二进制数的最右一位为第0位。 (2) 每向左一位就给一个后继的位号。 8位二进制数使用位0~7: X7X6X5X4X3X2X1X0 16位二进制数使用位0~15: X15X14X13X12X11X10X9X8X7X6X5X4X3X2X1 32位二进制数使用位0~31,等等。 第0位是低位(L.O.)位(有人把这一位称为最低位)。最左边的位一般叫做高位(H.O.)位(或者最高位)。我们将用位号来引

文档评论(0)

yanpizhuang + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档