Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Ayuda con Conversion (https://www.clubdelphi.com/foros/showthread.php?t=4744)

RedVenom 27-10-2003 00:42:27

Ayuda con Conversion
 
Ya pude convertir numeros binarios,hexadecimales y octales a decimales pero ahora quiero convertir decimales, hexadecimales y octales a binarios pero nose como me imagino que es el mismo principio que use en lo otro pero nose como aplicarlo, alguien me podria hechar una mano por favor aqui les pongo la funcion que use:


function BaseNADec(num : string; n : byte) : integer;
var
i : integer;
aux : string;
begin
// aux para determinar el numero hexadecimal
aux:='0123456789ABCDEF';
result:=0;
for i:=1 to length(num) do result:=result*n+pos(upcase(num[i]),aux)-1;
end;

// De base 16 (hexadecimal) a base 10 (decimal)
function HexADec(num : string) : integer;
begin
result:=BaseNADec(num,16);
end;


espero su ayuda gracias

Mick 27-10-2003 01:14:14

El codigo que has mostrado convierte a binario y no a decimal.
Una variable entera que es lo que retornas en la funcion de conversion ya se guarda en formato binario
que es lo unico que entienden los procesadores.
Lo que pretendes seguramente es crear un string con una representacion binaria en ascii de la variable entera.

Para ello puedes usar un codigo como este (ojo no se si compila):

Código:

function FormatBin(n:Cardinal ):string;
var
 p:PChar;
begin
  Result:= StringOfChar('0',sizeof(n));
  p:= @Result[sizeof(n)];
  while n<>0 do begin
      p^:= '01' [n AND 1];
      Dec(p);
      n:= n SHR 1;
  end{while};
end;

Salud2 !!!

Mick 27-10-2003 01:17:29

Corrijo una errata, sustituye los:

sizeof(n)

por:

sizeof(n)*8


Salud2 !!!


La franja horaria es GMT +2. Ahora son las 08:20:57.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi