| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2278 人关注过本帖
标题:[求解释]10进制输入16进制输出
只看楼主 加入收藏
cenriter
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2006-12-4
收藏
 问题点数:0 回复次数:16 
[求解释]10进制输入16进制输出

题目:把一个65535以内的十进制数转换成十六进制形式,并送显示,如:
                                                                                                         输入       65535
                                                                                                         输出        FFFF

6楼的大哥写的都对,但我是初学者,看不大懂,有哪位能帮我解释下?拜托了~!

[此贴子已经被作者于2006-12-10 21:15:22编辑过]

搜索更多相关主题的帖子: 进制 输出 解释 输入 
2006-12-05 10:04
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11794
专家分:43421
注 册:2006-5-13
收藏
得分:0 
你可以在程序开始时先关闭光标,结束时再打开光标。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2006-12-05 20:36
曾小
Rank: 1
等 级:新手上路
威 望:1
帖 子:239
专家分:0
注 册:2006-9-27
收藏
得分:0 
什么意思 啊?
版主说清啊!是不是我太糗了?

2006-12-06 11:45
cenriter
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2006-12-4
收藏
得分:0 
回复:(曾小)什么意思 啊?版主说清啊!是不是我太糗了...
字符串65535在输入的时候会变成 36H 35H 35H 33H 35H 。然后都减30H,变成6 5 5 3 5 ,各乘以各自的位数,比如6*10000,5*1000。最后让它们相加,变成十进制的65535,这样存进去的时候,计算机会自动转换成16进制。

对了,减30H 后的是 6H 5H 5H 3H 5H ,不是十进制。
哪位有新的办法或者能把65535变成十进制。

小弟初学,说不清楚的地方,大家见谅啊

2006-12-06 15:27
公子吕
Rank: 1
等 级:新手上路
帖 子:79
专家分:0
注 册:2006-5-4
收藏
得分:0 

好久没来这里也好久没用汇编了,其实以前我发过两个很实用的过程(函数)itoa & atoi,用来将用户想转换的数(int,long,etc..)转换成数字字符串,和 把需要的数字字符串转换为数。有了这两个过程,写汇编就容易多了。

你的程序好像只能转换65535吧,这样的程序太弱了,根本都不需要用户输入。我有空会帮你改写一下,还有一个建议,程序最好配上简单的注释。。

代码写好后再贴上。

2006-12-06 15:56
noble
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-12-6
收藏
得分:0 


code segment
assume cs: code
org 100h
start:

MOV bx, 0

input : MOV ah, 01
int 21h ;
; cmp al, 65H
; JZ EXIT
cmp al, 0dh
jz write ;
sub al, 30h
MOV cl, al
MOV ch, 0
MOV ax, bx
MOV bx, 0ah ;
mul bx
MOV bx, ax
add bx, cx
jmp input

write : MOV dl, 0dh
MOV ah, 02h
int 21h
MOV dl, 0ah
MOV ah, 02
int 21h ; 输出回车和换行

MOV dh, 2 ;
CC : MOV si, 2 ;
BB: MOV AH, 0
MOV AL, BH

MOV CL, 4

SHL AX, CL ;

cmp ah, 10
MOV BH, al
jC disp
add ah, 7

disp: add ah, 30h
MOV dl, ah
MOV ah, 02
int 21h

dec si
mov cx, si
jcxz disp1
jmp bb
disp1 : MOV bh, bl
dec dh

jnz cc


EXIT: MOV AH, 1
INT 21H

MOV AH, 4CH
INT 21H

code ends
end start

2006-12-06 20:05
公子吕
Rank: 1
等 级:新手上路
帖 子:79
专家分:0
注 册:2006-5-4
收藏
得分:0 
省力了。。。
2006-12-06 21:48
cenriter
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2006-12-4
收藏
得分:0 

谢谢,这个程序可行,我还得看懂下。我那种方法不知道能不能做


2006-12-07 12:25
cenriter
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2006-12-4
收藏
得分:0 
大哥,解释下,我看了半天还是晕头转向的,你的算法是什么?

mov ah,01
int 21h
是指输入的字符保存在AH内?

cmp al,0dh
jz write
这句的功能是什么?

2006-12-10 20:45
lefttime
Rank: 1
等 级:新手上路
帖 子:162
专家分:0
注 册:2006-10-6
收藏
得分:0 
mov ah,01
int 21h
指的是从键盘输入数值并存入AL中
cmp al,0dh
jz write
表示的是让AL中的数值与0dh相比较,如果相等则转移到write执行,如果不等则顺序执行

我是金子,我要闪光的
2006-12-11 17:51
快速回复:[求解释]10进制输入16进制输出
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012147 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved