如二进制数与十进制数的转换.PPT

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

* 第八章 代码转换 代码转换是在计算机程序设计中经常碰到的问题。如二进制数与十进制数的转换,ASCII码表示的十进制数与十六进制数之间的转换等等。 8.1 概述 2、直接转换法:依据转换规律,采用一定的算术运算或逻辑运算进行转换。 1、用查表的办法:这种方法主要用于代码之间的转换关系比较复杂的情况。但码元的数量必须是有限的。 代码转换可以用硬件快速实现,但更常用的方法还是用软件的方法来实现。用软件处理代码转换的方法通常有以下两种方法: 8.2 十六进制数的ASCII码与二进制数之间的相互转换 在编制源程序时,常用十六进制数。而从键盘输入时,在计算机中得到的是每个数符的ASCII码。因此需要将这些ASCII码表示的数转换为二进制数。 十六进制的每个数符所对应的ASCII码如下表所示。 3、对于数符a~f,各个ASCII码值与对应的二进制数值之差都为57H。 1、对于数字符0~9,其ASCII码的低4位就等于对应的二进制值。转换时,只需要将ASCII码的高4位去掉,就是其对应的二进制数。而在二进制数前加上0011B,就是ASCII码。 2、对于数符A~F,各个ASCII码值与对应的二进制数值之差都为37H。 因此,对于数符A~F和a~f,转换时,可以将各个ASCII码值减7H后再去掉高4位。 例1 将4位十六进制数的ASCII码分别转换为对应的4位二进制数,然后将它们组合成一个16位长的二进制数。 对于数字0~9的ASCII码,将其高4位二进制数去掉,就是对应的二进制数,对应字母A~F或 a~f ,将其ASCII码减去7,则其低4位与对应的4位二进制数相同。再去掉高4位即可。 例如,十六进制数为1A2CH,它的ASCII码的表示形式为: 31H,41H,32H,43H,而对应的二进制数为0001101000101100B ‘F’? Y CF=1 ‘a’? ‘f’? ‘A’? Y Y Y CF=0 数符ASCII码减7 返回主程序 返回主程序 字母数符子程序流程图 N N N 开始 输出提示信息 输入4位十六进制数 初始化循环次数、存结果的AX 取一个数符 数符‘0’? N 数符‘9’? N 清高4位 AX左移4位后存结果 循环次数=0? Y 修改循环次数 结 束 调用字母数符子程序 数符有效? Y Y 输出出错信息 Y N 主程序流程图 N DATA SEGMENT PROMPT DB INPUT HEXADECIMAL (4DIGIT):$ HEX DB 5,0,5DUP(0) BIN DW ? ERR DB 0AH,0DH,ERROR ! NO-HEXADECIMAL ! $ DATA ENDS STACK1 SEGMENT PARA STACK DW 20H DUP(0) STACK1 ENDS COSEG SEGMENT ASSUME CS:COSEG,DS:DATA,SS:STACK1 HEXBIN:MOV AX,DATA MOV DS,AX LEA DX,PROMPT;显示提示信息 MOV AH,09H INT 21H LEA DX,HEX MOV AH,0AH ;输入4位十六进制数 INT 21H LEA SI,HEX+2 ;取输入字符首地址 MOV CH,HEX+1 ;取字符数 MOV AX,0 CONV: MOV BL,[SI] ;代码转换 CMP BL,0 JB ERROR ;0,出错 CMP BL,9 JBE BIN1 ;是0-9,转移 CALL HEX1 ;是字母符,调用子程序 JC ERROR ;是错误的字符 BIN1: AND BL,0FH MOV CL,4

文档评论(0)

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

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

1亿VIP精品文档

相关文档