成语| 古诗大全| 扒知识| 扒知识繁体

当前位置:首页 > 趣味生活

十进制转十六进制程序

Q1:高手帮忙解释一个十进制转十六进制的汇编程序

你这个代码还有点问题,帮你改了,黑子部分是添加的代码,否则无法看到结果:
data segment
str db 0ah,0dh
num db 4 dup(?),H$
tab db 0123456789ABCDEF
data ends
code segment
assume cs:code,ds:data
begin:
mov ax,data
mov ds,ax
xor bx,bx
mov cx,10、next:
mov ah,1;1号功能从键盘读入字符
int 21h
cmp al,0dh;如果=13也就是回车则跳到conv进行转换
jz conv
push ax;暂存ax
mov ax,bx;bx存当前已有的数值,这里叫唤是为了用mul
mul cx;bx=bx*10、mov bx,ax;以下2句还原状态
pop ax
and al,0fh;这是把1转换成1的动作
xor ah,ah;清空高位
add bx,ax;相加
jmp next;继续读取下个字符
;这一段程序用伪代码描述大概是
;cx = 10、;bx = 0
;next:
;ah = 读入字符
;if ah = 回车 goto conv
;bx = bx*cx + ah-0
;goto next
;conv:
conv:
mov ax,bx;bx里存的是输入的10进制数
mov ch,4、lea bx,tab;bx保存16进制字符表的基址
mov cl,4、lea si,num;num是转换后存16进制字符的地方
lopa:
rol ax,cl;ax左移动4位,由于是rol,所以高4位移到低4位
push ax;暂存
and ax,000fh;取出低4位,也就是高4位移过来位
mov di, ax;查表
mov al, [bx+di]
mov [si],al;存储
inc si;下个位置
pop ax;还原状态
dec ch;ch=ch-1、jnz lopa;if ch != 0 goto lopa
;这一段的工作原理是分别取出ax的每个4位二进制元组(也就对应了一位16进制数)
;然后利用bx查表,把查到的字符存入num
;比如ax = 1111 1010 0010 1000
;那么循环4次分别得到1111B=Fh,1010B=Ah,0010B=2h,1000=8h
;所以最后num里存的也就是FA28H了
;rol ax, cl(=4)是把ax的高4位,比如这里的1111,旋转到低4位
;所以第一次rol ax, cl后便得到1010 0010 1000 1111、lea dx,str;输出
mov ah,9、int 21h
mov ah,4ch
int 21h
code ends
end begin

Q2:c++问题:十进制转十六进制程序,1000转换后应为3E8,可是输出的是3698,尝试过在结尾强转也没用,求解

123456789101112131415161718192021222324252627282930#include#includevoidmain(){inta,c=0,i=0;floatb[101];chard[101];a=1000;while(a!=0){b[c]=a%16;a=a/16;c++;}for(i=0;i<=c-1;i++){if(b[i]==10)d[i]=A;elseif(b[i]==11)d[i]=B;elseif(b[i]==12)d[i]=C;elseif(b[i]==13)d[i]=D;elseif(b[i]==14)d[i]=E;elseif(b[i]==15)d[i]=F;elsed[i]=b[i]+0;}for(i=c-1;i>=0;i--){cout<

Q3:十进制转十六进制的C++源程序

#include
void change(int n)
{
if(n == 0)
return;
change(n/16);
int m = n % 16;
cout<}
void main()
{cout<<"请输入一个10进制数:"<cin>>i;
cout<change(i);
}
我这个是递归

wwW.baZHI★shi.CoM

Q4:用VB编写一个输入十进制转十六进制的程序怎么做?

用VB编写一个输入十进制整数转十六进制的程序可使用Hex函数完成。

Hex 函数,返回代表十六进制数值的 String。

Hex 函数示例

本示例使用 Hex 函数来得到某数值的 16 进制值。

Dim MyHex
MyHex = Hex(5) 返回 5。
MyHex = Hex(10) 返回 A。
MyHex = Hex(459) 返回 1CB。
Hex 函数示例

本示例使用 Hex 函数来得到某数值的 16 进制值。

猜你喜欢

更多