[Pr�via] [Pr�xima] [Pr�via por assunto] [Pr�xima por assunto]
[�ndice cronol�gico]
[�ndice de assunto]
ascii para hexa
- Subject: ascii para hexa
- From: Andre Uratsuka Manoel <andre@xxxxxxxxxxxxx>
- Date: Sun, 6 Apr 2003 19:02:47 -0300 (BRT)
* Subject: ascii para hexa
* From: "Alexandre Pitta Guedes" <apguedes2000@xxxxxxxxxxx>
* Date: Fri, 28 Mar 2003 14:34:15 -0300
Sem querer ser chato, mas j� sendo m� mala,
eu queria saber como eu "digo" para o programa
que eu quero que o numero saia em hexa...
tipo, toda informa��o � guardada em hexa,
certo?
Errado. As informa��es s�o guardadas em bin�rio. S�o os
programadores que preferem hexa para trabalhar, porque � f�cil de
convertar n�meros bin�rios em hexa.
quando eu recebo o arquivo texto, ele
vai guarda-lo em hexa... como eu falo para
ele que � para devolver os dados como hexa???
O texto � salvo em ASCII (ou, eventualmente alguma outra
codifica��o), mas � bin�rio, de qualquer forma. O que voce precisa fazer �
pegar esse c�digo bin�rio e interpretar, obtendo os c�digos ASCII
correspondentes a cada d�gito da representa��o em hexa daquele n�mero
bin�rio. (nao sei se deu para entender, espero que sim).
A convers�o � f�cil: voc� vai dividindo por 16 e pegando o resto.
Mas como o computador � bin�rio. Dividir por 16 � equivalente a fazer um
shift right de 4 bits. O resto da divis�o por 16 � obtido com um "and 15"
(que � 00001111 em bin�rio).
Isso serve para voc� obter cada um dos "nibbles" ou digitos hexa
do n�mero. Da� voc� pode pegar o c�digo ASCII que corresponde ao d�gito
hexa dado:
hexdigits db '0123456789abcdef'
.text
<...>
mov bx, hexdigits
mov al, <numero>
xlat [hex_table] ; nao sei se tem os colchetes na notacao do NASM
; agora al contem o codigo ascii
-------------
Isso equivale ao seguinte em C:
unsigned char hexdigits[] = "0123456789abcdef";
unsigned char tohexdigit(unsigned char c)
{
return hexdigit[c];
}
-------------
Seria o contrario da fun��o que o prof deu na aula. uma que converte ascii
para hexa.
Infelizmente n�o vi essa aula, mas o que precisa, resumindo, �:
converter bin�rio -> hexa
converter hexa -> ascii
O c�digo que eu passei acima serve para a segunda parte.
Andre