本文目录一览:
如何将字符串转换为16进制数值
举个例子:233转变成e9
233/16 = 14 余数为9
14的十六进制为e,9的十六进制还是9,所以转换结果为e9.
也就是说:如果相除的结果小于1,则结果是多少就直接转换
如果结果在1和15之间,则转换后的结果如本例所示.
依此类推.
再举个例子:143转变成e9
143/16 = 8 余数为15
8的十六进制还是8,15的十六进制是f,所以转换结果为8f.
怎样把字符串转成16进制数
字符类型是整型类型的一种,将其转换成int类型,然后再输出十六进制形式即可。下面是一个示例程序。
#include iostream
using namespace std;
int main()
{
char str_test[] = "hello world\n";
int limit = strlen(str_test);
for (int inx=0; inx!=limit; ++inx)
//用static_cast将字符类型转成int类型
coutstr_test[inx]"---hex:"hexstatic_castint(str_test[inx])"\t";
coutendl;
return 0;
}
程序执行结果:
如何把汇编语言转换成十六进制代码
题目应该是“如何用汇编语言把10进制数转换成十六进制代码”吧!
刚刚写了个,供参考:
;输入不超过65535的10进制数,将其以16进制的形式显示
code segment
assume cs:code
org 100h
start:
jmp bbb
x dw 0
msg1 db 10,13,'please input a number:','$'
msg2 db 10,13,' ','$'
bbb:
push cs
pop ds
lea dx,msg1
mov ah,9
int 21h
lea bx,x
mov ax,0
push ax
again1:
mov ah,1
int 21h
cmp al,13
je line0
sub al,30h
mov ah,0
mov si,ax
pop ax
mov cl,10
mov ch,0
mul cx
add ax,si
push ax
jmp again1
line0:
pop ax
mov word ptr[x],ax
lea di,msg2
inc di
inc di
mov cx,4
again2:
mov ax,word ptr[x]
rol ax,1
rol ax,1
rol ax,1
rol ax,1
; rol ax,4
mov word ptr[x],ax
and ax,000Fh
cmp al,9
jg line1
add al,30h
mov byte ptr[di],al
jmp line2
line1:
add al,37h
mov byte ptr[di],al
line2:
inc di
loop again2
lea dx,msg2
mov ah,9
int 21h
mov ah,8
int 21h
mov ah,4ch
int 21h
code ends
end start