- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
二进制数和十六进制数的算术运算
汇编语言的编程艺术(第2版)
第2章 数 据 表 示
PAGE 72
PAGE 71
2
2
第 章
第 章
数 据 表 示
在学习汇编语言的时候,许多初学者遇到的主要障碍都是二进制和十六进制数字系统的用法。虽然十六进制数与通常所用的数的确存在一些差异,但是它们的优点远远大于缺点。理解这些数字系统是很重要的,因为它们简化了许多复杂的问题,包括位运算、有符号数的表示、字符代码以及压缩数据。
本章将讨论几个重要的概念,其中包括:
二进制和十六进制数字系统
二进制数据的结构(位、半字节、字节、字以及双字)
二进制的有符号和无符号数字系统
二进制值的算术、逻辑、移位以及循环移位运算
位域和压缩数据
这些都是基础知识,本书剩下的部分将依赖于对这些概念的理解。如果您已经在其他课程或者研究中熟悉了这些术语,那么在学习第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位
您可能关注的文档
- 中药治疗慢性阻塞性肺疾病的作用机制研究概况.PDF
- 中近磁尾等离子体片统计特性研究-地球物理学报.PDF
- 中通视际V8流媒体智能后视镜软件V10-中通视际Zotost行车安全.PDF
- 中钢环保管理制度-内蒙古麒麟明珠.DOC
- 中铁七局集团武汉公司武九客专湖北段.DOC
- 中间层顶重力波耗散引起钠原子输送的激光雷达观测研究.PDF
- 中间包底吹氩水模型试验及冶金效果-钢铁钒钛.PDF
- 中黏性边界条件的实现及应用-防灾减灾工程学报.PDF
- 中高纬ISV在AMO不同位相下的特征.ppt
- 临夏枹罕镇总体规划2017-2030年.DOC
- 二维相关可见-近红外光谱结合支持向量机评价猪肉-中国管理科学.PDF
- 二阶常系数非齐次线性方程解法.PPT
- 二阶常系数非齐次方程特解的求解-上海电力学院学报.PDF
- 二零一一年东营初中学生学业水平考试语文试题手录黄庆峰一.DOC
- 二阶斯托克斯非线性潮波对潮汐贯流式水轮机性能的影响-农业工程学报.PDF
- 二项矩阵分解在离散评分推荐算法中的改进-计算机应用与软件.PDF
- 二阶脉冲微分方程的解的渐近性态-华南师范大学学报.PDF
- 于急诊照护一位患柏格尔氏病合并动脉溃疡及慢性疼痛个案-志为护理.PDF
- 云上智慧机场信息化建设研讨-中国民航网.PDF
- 云南一次持续性暴雨过程的非地转湿Q矢量分析-大气科学学报.PDF
最近下载
- 2025年危险品水路运输从业资格考试复习题库资料(浓缩500题).pdf
- 标准图集-苏S13-2022 预制混凝土排水检查井.pdf VIP
- T/CSWSL 036-2024N-酰基高丝氨酸内酯酶.pdf
- 2025至2030中国宫颈癌疫苗行业市场占有率及投资前景评估规划报告.docx VIP
- 2025至2030汽车防爆膜行业市场占有率及投资前景评估规划报告.docx VIP
- 2025至2030热熔线标涂料行业市场发展分析及投资前景报告.docx VIP
- 2021年禁毒社工招聘考试试题.doc VIP
- 医院病理技师礼仪与病理诊断.pptx VIP
- 2021年度禁毒社工招聘考试试题.doc VIP
- 《十二公民》剧本.docx VIP
文档评论(0)