gabtroc
26-05-2012, 18:21:23
Buenos dias amigos del club delphi necesito hacer un programa en aplicacion tipo consola que me lea un numero en cualquiera de las tres bases (decimal/binario/hexadecimal) y me las convierta en sus equivalentes de las otras dos bases.
Nada mas he empezado con el codigo de decimal a binario pero tengo problemas convirtiendo de decimal a hexadecimal si alguien me pudiera ayudar con eso seria excelente y con las otras conversiones empezando de base hexadecimal o con base binaria.
cbin:=0;
repeat
dig:=aux mod 2;
cbin:=dig+cbin*10;
aux:=aux div 2;
until aux=0;
cv:=0;
Repeat
v:=cbin mod 10;
cv:=v+cv*10;
cbin:=cbin div 10;
Until cbin=0;
Writeln(cv); // Este es el numero en binario
aux:=pr;
chex:=0;
repeat
dig:=aux mod 16;
chex:=dig+chex*10;
aux:=aux div 16;
until aux=0;
Writeln(chex);
cv:=0;
Repeat
v:=chex mod 10;
cv:=v+10*cv;
chex:=chex div 10;
Until chex=0;
Writeln(cv);
cv seria el numero al cual tendria que convertir en hexadecimal haciendo una comporacion de sus digitos y pasandolo a sus equivalentes hexadecimales pero no se como escribir esa comparacion porque por ejemplo el numero 123 en decimal seria 7B, si meto ese numero en el programa cv seria igual a 711 lo cual en equivalente a hexadecimal me daria mi 7B pero como hago para que me identifique cuando convierto el 11 a una B en vez de dos 1?
Si no se entiende la explicacion escriban por favor que es urgente tengo hasta hoy en la noche para mandar ese programa.
Nada mas he empezado con el codigo de decimal a binario pero tengo problemas convirtiendo de decimal a hexadecimal si alguien me pudiera ayudar con eso seria excelente y con las otras conversiones empezando de base hexadecimal o con base binaria.
cbin:=0;
repeat
dig:=aux mod 2;
cbin:=dig+cbin*10;
aux:=aux div 2;
until aux=0;
cv:=0;
Repeat
v:=cbin mod 10;
cv:=v+cv*10;
cbin:=cbin div 10;
Until cbin=0;
Writeln(cv); // Este es el numero en binario
aux:=pr;
chex:=0;
repeat
dig:=aux mod 16;
chex:=dig+chex*10;
aux:=aux div 16;
until aux=0;
Writeln(chex);
cv:=0;
Repeat
v:=chex mod 10;
cv:=v+10*cv;
chex:=chex div 10;
Until chex=0;
Writeln(cv);
cv seria el numero al cual tendria que convertir en hexadecimal haciendo una comporacion de sus digitos y pasandolo a sus equivalentes hexadecimales pero no se como escribir esa comparacion porque por ejemplo el numero 123 en decimal seria 7B, si meto ese numero en el programa cv seria igual a 711 lo cual en equivalente a hexadecimal me daria mi 7B pero como hago para que me identifique cuando convierto el 11 a una B en vez de dos 1?
Si no se entiende la explicacion escriban por favor que es urgente tengo hasta hoy en la noche para mandar ese programa.