Fórum Conversão de String #292504
21/08/2005
0
Preciso de uma função que converta binários de um listbox para byte ou decimal.
A função que preciso é parecida com esta que está em C:
[color=red:2bc1fc72bb]//Função: Converte String binária em um byte correspondente.
unsigned char StrBinParaByte(char *StringBin)
{
unsigned char mask = 128; //10000000 - para manipular os bits da variável byte.
unsigned char Byte = 0; //onde iremos armazenar o resultado para retorno.
int Pos = 0; //para percorrer a matriz.
while(Pos < 8) //laço de 0 a 7.
{
if( StringBin[Pos] == ´1´ ) //testa cada digito da matriz.
{
Byte = (unsigned char)(Byte ^ (mask >> Pos)); //monta o byte.
}
Pos++; //a cada passagem, incrementa de 1. (0,1,2...).
}
return(Byte); //retorna byte como sendo do tipo unsigned char.
}
Como usar esta função:
unsigned char valor;
valor = StrBinParaByte(´10110101´); //converte texto binário em um byte.
outportb(0x378, valor); //envia para a porta.[/color:2bc1fc72bb]
Explicando melhor. Preciso desta função para um programa que escreve na porta paralela. Eu colocaria os valores binários no listbox e ele enviaria (em byte ou decimal) para a LPT.
Agradeço a atenção.
Obrigado,
Rodrigo.
Ropesca
Curtir tópico
+ 0Posts
22/08/2005
Adriano Santos
procedure TForm1.Button2Click(Sender: TObject);
{Binário para Inteiro}
function BinToInt(Valor: string): LongInt;
var
i, Tamanho, np: Integer;
begin
Result := 0;
Tamanho := Length(Valor);
for i := 0 to Tamanho - 1 do
begin
np := strtoint(Valor[Tamanho - i]);
Result := Result + np * Trunc(Power(2, i));
end;
end;
begin
Edit2.Text := IntToStr(BinToInt(Edit1.Text));
end;
Decimal para Binário
procedure TForm1.Button1Click(Sender: TObject); var Decimal, Resto: integer; Binario: string; begin Binario := ´´; Decimal := StrToInt(Edit1.Text); repeat Resto := Decimal mod 2; Decimal := Decimal div 2; if Resto = 0 then Binario := ´0´ + Binario else Binario := ´1´ + Binario; until Decimal = 0; Edit2.Text := Binario; end;
Gostei + 0
24/08/2005
Ropesca
[color=blue:86bf7481c2]Preciso na verdade de uma função que pegue os 8 números binários de um listbox e os converta para decimal.[/color:86bf7481c2]
Por favor, se alguem puder ajudar nessa questão ficaria muito grato!
Obrigado,
Rodrigo.
Gostei + 0
25/08/2005
Wilson Brito
Gostei + 0
25/08/2005
Ropesca
Uma outra dúvida, como fazer para capturar os itens de um listbox e converter para binário?
Obrigado.
Gostei + 0
25/08/2005
Ropesca
Um abraço.
Gostei + 0
25/08/2005
Wilson Brito
procedure TForm1.Button1Click(Sender: TObject);
{Binário para Decimal}
function BinToInt(Valor: string): LongInt;
var
i, Tamanho, np: Integer;
begin
Result := 0;
Tamanho := Length(Valor);
for i := 0 to Tamanho - 1 do
begin
np := strtoint(Valor[Tamanho - i]);
Result := Result + np * Trunc(Power(2, i));
end;
end;
var
i: integer;
begin
//ListBox1 = Binário
//ListBox2 = Decimal
ListBox2.Items.Clear;
for i := 0 to ListBox1.Items.Count-1 do begin
ListBox2.Items.Add( IntToStr( BinToInt(ListBox1.Items[i]) ) );
end;
end;Gostei + 0
24/11/2005
Delphi32
procedure TForm1.Button2Click(Sender: TObject);
{Binário para Inteiro}
function BinToInt(Valor: string): LongInt;
var
i, Tamanho, np: Integer;
begin
Result := 0;
Tamanho := Length(Valor);
for i := 0 to Tamanho - 1 do
begin
np := strtoint(Valor[Tamanho - i]);
Result := Result + np * Trunc(Power(2, i));
end;
end;
begin
Edit2.Text := IntToStr(BinToInt(Edit1.Text));
end;
Decimal para Binário
procedure TForm1.Button1Click(Sender: TObject); var Decimal, Resto: integer; Binario: string; begin Binario := ´´; Decimal := StrToInt(Edit1.Text); repeat Resto := Decimal mod 2; Decimal := Decimal div 2; if Resto = 0 then Binario := ´0´ + Binario else Binario := ´1´ + Binario; until Decimal = 0; Edit2.Text := Binario; end;
pessoal, um colega meu tem um trabalho para a faculdade. Tem que fazer um programa em Pascal que converta um número para binário e vice-versa. Achei o código acima, mas queria saber se alguém poderia me explicar na teorica como se faz isso... eu já tenho a rotina, mas não entendo como (e porque) ela está fazendo esses comandos... enfim, queria uma explicação teórica... se alguém puder me ajudar!
t+!
Gostei + 0
29/11/2005
Delphi32
t+!
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)