Hexdecimal para Binario
Alguem pode me ajudar, a transformar numeros Hexdecimal
para binario. Eu vi alguma coisa como uma função HexToBin,
mas não consegui executa la. Ex. Tenho no edit1 3FFF resultado
no Edit2 em Binario.
Grato
Juarez
para binario. Eu vi alguma coisa como uma função HexToBin,
mas não consegui executa la. Ex. Tenho no edit1 3FFF resultado
no Edit2 em Binario.
Grato
Juarez
Juarezber
Curtidas 0
Respostas
Khundalini
12/04/2005
Se bem me lembro, HexToBin é uma rotina(procedure, procedimento, etc.), e não uma função! Fica esperto!
HexToBin() e BinToHex() são mencionados no help do Delphi, mas poucas pessoas sabem que essas rotinas estão lá! Mas, como eu costumo dizer, quem procura, acha! HEHE! ;-)
Coloca três labels (Label1, Label2 e Label3) e um botão (Button1) e no código do evento OnClick do botão, usa o seguinte código:
procedure TForm1.Button1Click(Sender: TObject);
var
E: Extended;
Buf: array[0..SizeOf(Extended) * 2] of Char;
begin
E := Pi;
Label1.Caption := Format(´E tem o valor ¬.15f´, [E]);
BinToHex(@E, Buf, SizeOf(E));
Buf[SizeOf(Buf) - 1] := #0;
Label2.Caption := Format(´Como texto, o conteúdo em binário de E é algo como ¬s´, [Buf]);
HexToBin(Buf, @E, SizeOf(Buf) - 1);
Label3.Caption := Format(´Volta de texto pra binário, E is now ¬.15f´, [E]);
end;
[]s
Rubem Rocha
Manaus, AM
HexToBin() e BinToHex() são mencionados no help do Delphi, mas poucas pessoas sabem que essas rotinas estão lá! Mas, como eu costumo dizer, quem procura, acha! HEHE! ;-)
Coloca três labels (Label1, Label2 e Label3) e um botão (Button1) e no código do evento OnClick do botão, usa o seguinte código:
procedure TForm1.Button1Click(Sender: TObject);
var
E: Extended;
Buf: array[0..SizeOf(Extended) * 2] of Char;
begin
E := Pi;
Label1.Caption := Format(´E tem o valor ¬.15f´, [E]);
BinToHex(@E, Buf, SizeOf(E));
Buf[SizeOf(Buf) - 1] := #0;
Label2.Caption := Format(´Como texto, o conteúdo em binário de E é algo como ¬s´, [Buf]);
HexToBin(Buf, @E, SizeOf(Buf) - 1);
Label3.Caption := Format(´Volta de texto pra binário, E is now ¬.15f´, [E]);
end;
[]s
Rubem Rocha
Manaus, AM
GOSTEI 0
Kapak
12/04/2005
Se bem me lembro, HexToBin é uma rotina(procedure, procedimento, etc.), e não uma função! Fica esperto!
No Delphi 6, HexToBin é uma função que retorna o número de caracteres colocados no parâmetro Buffer.GOSTEI 0
Juarezber
12/04/2005
kapak, pode dar um exemplo com dois edits, 1 com Hex outro com
Binario. Ex: 3FFF em Hexadecimal é = Binario 11111111111111,
3FF em Hexadecimal é = Binario 11111111111110, 3FF em Hexadecimal é = Binario 111111111111101. Se mais alguem tambem quiser responder
fico agradecido.
juarezber@terra.com.br
Binario. Ex: 3FFF em Hexadecimal é = Binario 11111111111111,
3FF em Hexadecimal é = Binario 11111111111110, 3FF em Hexadecimal é = Binario 111111111111101. Se mais alguem tambem quiser responder
fico agradecido.
juarezber@terra.com.br
GOSTEI 0
Kapak
12/04/2005
Bom, não conheço nenhuma rotina que transforme desse jeito, mas vc pode fazer via código:
var i,j,l:Integer; p:Pchar; b:Byte; begin if Length(Edit1.Text) mod 2 > 0 then Edit1.Text := ´0´ + Edit1.Text; l := Length(Edit1.Text) div 2; p := AllocMem(l); HexToBin(PChar(Edit1.Text), p, l); for i := 1 to l do for j := 7 downto 0 do begin b := 1 shl j; if (Ord((p+i-1)^) and b) > 0 then Edit2.Text := Edit2.Text + ´1´ else Edit2.Text := Edit2.Text + ´0´; end; Edit2.Text := Copy(Edit2.Text, Pos(´1´,Edit2.Text), Length(Edit2.Text)); FreeMem(p); end;
GOSTEI 0
Juarezber
12/04/2005
kapak, obrigado deu certo. obrigado pelas respostas a todos.
juarezber@terra.com.br
juarezber@terra.com.br
GOSTEI 0