Fórum converter binario em decimal #196420

21/11/2003

0

Olá pessoal.

Tenho uma aplicação com número binario. Gostaria de passá-lo para decimal.
Alguém teria essa função pronta, ou poderia me dar uma luz no q tá dando errado nesta função abaixo.
Fazendo o teste, ele está pegando o 1º bit e jogando para o ultimo bit, trazendo assim um número diferente ao esperado.


estou fazendo o seguinte:


function Tform1.BinToInt(Value: String): LongInt;
var
i,Size: Integer;
begin
Result := 0;
Size := Length(Value);
for i:=Size downto 0 do
begin
if Copy(Value,i,1)=´1´ then
begin
Result := Result+(1 shl i);
end;
end;
end;

valew

Reginaldo


Lost

Lost

Responder

Posts

21/11/2003

Carnette

function BinToInt(Value: string): Integer;
var
i, iValueSize: Integer;
begin
Result := 0;
iValueSize := Length(Value);
for i := iValueSize downto 1 do
if Value[i] = ´1´ then Result := Result + (1 shl (iValueSize - i));
end;


Responder

Gostei + 0

21/11/2003

Lost

valew Carnette. Deu certo.


Responder

Gostei + 0

21/11/2003

Omero

Usando algoritmos básicos em Pascal:
http://www.colegiomaterdei.com.br/faculdade/alunos/aulas/omero/Pascal/Exercicios/Geral/Geral.htm

function Decimal(S: string): integer;
var n, i, posBit, potencia: integer;
begin
n := 0;
posBit := 0;
while S <> ´´ do
begin
if S[length(S)] = ´1´
then begin
{ pega o bit: se ele estiver ligado (1)
entao calcula 2 elevado a posicao do bit (posBit) }
potencia := 1;
for i:=1 to posBit do potencia := potencia * 2;
n := n + potencia;
end;
Delete(S, length(S), 1);
posBit := posBit + 1;
end;
Decimal := n;
end;

um abraço.
prof. Omero.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar