FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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 |
#2
|
|||
|
|||
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; |
#3
|
|||
|
|||
Corrijo una errata, sustituye los:
sizeof(n) por: sizeof(n)*8 Salud2 !!! |
|
|
|