- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
目 录
TOC \o "1-3" \h \z \u 1题目 1
2算法分析 1
2.1二进制数转换成10进制数 1
2.2二进制数转换为 8 进制数 1
2.3二进制数转换为 16 进制数 2
3流程图 2
3.1设计流程图 2
3.2程序流程图 4
3.3汇编程序 5
4调试运行结果 13
4.1调试运行结果如下图所示: 13
4.2 调试中遇到的问题 15
4.2.1 错误程序1 15
4.2.2 错误程序2 16
5小结 16
参考文献 18
数制转换
1题目
通过键盘输入一个二进制数,通过屏幕提示菜单选择转换成八进制,十进制或者十六进制数并显示。
2算法分析
2.1二进制数转换成10进制数
由二进制数转换成十进制数的基本做法是,把二进制数首先写成加权系数展开式,然后按十进制加法规则求和。这种做法称为"按权相加"法。
比如:1011.012=1*23+0*22+1*21+1*20+0*2-1+1*2-2 =(11.25)10
2.2二进制数转换为 8 进制数
由二进制数转换成八进制数可以 3 位二进制位编为一组(不够左侧补0),然后从右边开始每三位如下方式替换: 000 - 0, 001 - 1, 010 - 2, 011 - 3, 100 - 4, 101 - 5, 110 - 6, 111 - 7.比如转换二进制数 1110101010100 那么分组为 001 110 101 010 100 按照转换方法对应转换?? 1???6???5???2???4
所以:(11101010100)2=(16524)8
2.3二进制数转换为 16 进制数
由二进制数要转换为十六进制,就是以4位一段,分别转换为十六进制。
转换为 16 进制0000 - 0, 0001 - 1, 0010 - 2, 0011 - 30100 - 4, 0101 - 5, 0110 - 6, 0111 - 71000 - 8, 1001 - 9, 1010 - A, 1011 - B1100 - C, 1101 - D, 1110 - E, 1111 – F
此时分组为 4 位二进制数为一组
比如转换二进制 0101010100101011010,分组:0010 1010 1001 0101 1010??2??? A????9????5??? A
所以:(0101010100101011010)2=(2A95A)16
3流程图
3.1设计流程图
根据题意,设计流程图如下:
开 始
开 始
输入二进制数
输入二进制数
八进制
八进制
N
Y
十进制 Y
十进制
八进制数
八进制数
十六进制数十进制数
十六进制数
十进制数
结 束
结 束
图1 设计流程图
3.2 程序流程图
根据题意,程序流程图如下:
图2 8进制转换 图3 16进制转换
图4 10进制转换
3.3汇编程序
汇编程序如下:
data segment
buff1 db 17
buff2 db ?
buff3 db 17 dup(?)
buff4 db 'O:1,D:2,H:3',0dh,0ah,'$'
buff5 db 48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70
buff6 db 0dh,0ah,'$'
mes db 'please enter a binary number',0dh,0ah,'$'
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
lea dx,mes ;取mes的偏移地址
mov ah,09
int 21h ;在屏幕上显示字符串
lea dx,buff1 ;取buff1的偏移地址
文档评论(0)