|
主题 : : 传说中的菜鸟问题 [待解决] |
回复[ 6次 ]
点击[ 1053次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2007-11-13 09:27 ]
[引用]
[回复]
[ top ] | |
荣誉值:12
信誉值:0
注册日期:2007-07-26 10:58 |
十进制数25698如何转换为十六进制的数据?
望各位大侠把思路写出来,先行谢过。 | | |
|
|
|
|
[第1楼]
[ 回复时间:2007-11-13 11:58 ]
[引用]
[回复]
[ top ] | |
荣誉值:283
信誉值:0
注册日期:2007-06-26 11:42 |
1.按照书上讲的一个数转换成十进制方式,对该数据除以16取余。
2.mov ax ,idata
shl(shr) ax,4
通过移位。 | | |
|
|
|
|
[第2楼]
[ 回复时间:2007-11-14 10:09 ]
[引用]
[回复]
[ top ] | |
荣誉值:117
信誉值:2
注册日期:2007-09-04 10:41 |
楼上讲的太好了
不过我还没用过第二种(好像是在汇编书的后半部分,还没有学到)
我只会第一种的做法,给你举个小例子把
求十进制252的十六进制的值(方法是除以16取余数)
商 余数
16|252 12 可以这样写,252除以16商15余数12(本行的12和下行的第一个15)
16|15 15
0
所以结果是FC(看余数),F就是十六进制的15,C就是十六进制的12,为了区分其它进制的表示方法,在后面加个H,即十六进制的252表示为FCH.(不知道说明白没有~_~"")
附上一个十进制数转换为二进制数
除以2取余数。(十六机制是除以16取余数)
例:把18表示成二进制。
18÷2=9 余0
9÷2=4 余1
4÷2=2 余0
2÷2=1 余0
1÷2=0 余1
将各次余数从右向左排列即得10010B,所以18=10010B。(由于是二进制表示,所以最后加一个B,同十六进制的H) | | |
|
|
|
|
[第3楼]
[ 回复时间:2007-11-14 11:03 ]
[引用]
[回复]
[ top ] | |
荣誉值:32
信誉值:0
注册日期:2007-07-14 19:06 |
转换成16进制,2进制的数据可以在16进制的基础上进行转换,8进制的数据可以在2进制的基础上转换,1位16进制转换为4位2进制,3位2进制,转换为1位8进制,也就是说2,8,16进制的转换比较灵活。 | | |
|
|
|
|
[第4楼]
[ 回复时间:2007-11-14 13:53 ]
[引用]
[回复]
[ top ] | |
荣誉值:6
信誉值:0
注册日期:2007-11-14 13:44 |
以前写过一个10进制转换成16进制的例子,测试数的范围是0~ffff
;*********************************************************************
MUL10 macro ;1234 = ((((1*10)+2)*10)+3)*10+4
push ax
mov ax, TEN
mov bx, ax
mul cl
xchg bx, ax
mov al, ah
mul cl
add ax, bx
mov TEN, ax
pop ax
endm
.model small
.data
TEN dw 0
TABLE db '0123456789abcdef'
.code
.startup
mov cl, 10
READ: ;TEN stores the num TEN=1234
mov ah, 1
int 21h
cmp al, 13 ;回车 结束
jz DISP
MUL10
and ax, 000fh
add TEN, ax
jmp READ
DISP: ;display the num in 16
lea bx, TABLE
mov cl, 12
RR:
mov ax, TEN
shr ax, cl
and ax, 000fh
xlat ;xlat --> mov al,byte ptr[bx+al]
mov dl, al
mov ah, 2
int 21h
sub cl, 4
jnc RR
.exit
end | | |
|
|
|
|
[第5楼]
[ 回复时间:2008-01-24 19:20 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-01-17 18:48 |
我有一个比较快的方法,用附件里的科学计算器,比较快。。哈哈!高手误笑! | | |
|
|
|
|
[第6楼]
[ 回复时间:2008-01-25 09:47 ]
[引用]
[回复]
[ top ] | |
荣誉值:117
信誉值:2
注册日期:2007-09-04 10:41 |
o(∩_∩)o...
熟练了手算十进制转十六进制这个基本功,用计算器偷个懒也未尝不可啊:-)用的要是自己的编个计算器就更好了~ | | |