Delphi - Convertir binario a decimal

 
Vista:

Convertir binario a decimal

Publicado por decimo (1 intervención) el 02/02/2002 04:46:52
Hola alguien me puede decir como convierto una cadena binaria en un decimal ?
gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Convertir binario a decimal

Publicado por beosman (163 intervenciones) el 02/02/2002 10:57:08
Pues siento decirte que para eso no hay ninguna funcion en Delphi que lo haga, por lo tanto debes hacerla tu.

Una forma de hacerla es haciendo una funcion a la cual le pases la cadena de caracteres binaria. Luego coges dicha cadena y mediante un bucle la recorres del final al principio cogiendo los bits de 4 en 4 que da la casualidad que se puede representar mediante un numero hexadecimal:

0000 -> 0
0001 -> 1
0010 -> 2
...
1110 -> E
1111 -> F

Despues de haber obtenido esto, con la funciona StrToInt conviertes la cadena en valor hexadecimal a entero. Lleva trabajo de codificicion pero no es dificil. Quedaria algo asi:

10101001010111010111 -> A95D7
IntToStr('$' + 'A95D7');

Y ya te sale el valor decimal.

Espero que ter sirva. Un saludo.

Diego -> chairman
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Convertir binario a decimal

Publicado por Antonio M. Estévez (24 intervenciones) el 04/02/2002 17:37:09
function BinToInt(const Bin: string): Integer; // Cardinal si la cadena es de 32 bits
var
i: Integer;
begin
Result:= 0;
for i:= 1 to Length(Bin) do
Result:= Result*2 + Ord(Bin[i]) - Ord('0');
end;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

NO ME RESULTA

Publicado por decimo (1 intervención) el 05/02/2002 03:01:32
ninguna DE las 2 me a servido .
un ejemplo q lo q quiero es convertir 11001000000010010111101000000100
y el resultado seria
3356064260

GRACIAS DE TODOS MODOS
CHAO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:NO ME RESULTA

Publicado por Antonio M. Estévez (24 intervenciones) el 05/02/2002 08:27:44
Siento contradecirte pero he probado el ejemplo que has puesto y lo calcula perferctamente. Recuerda que como la cadena es de 32bits el resultado de la función debe ser Cardinal y no Integer.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar