| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Mie 09 Jul, 2003 9:59 am Asunto: Decimal a binario y binario a decimal |
|
|
Conversión de decimal (entero) a binario
| Código: | AnsiString cBin = "";
while (nValor > 1)
{
cBin = IntToStr(nValor % 2) + cBin1;
nValor = INT(nValor / 2);
}
cBin = IntToStr(nValor) + cBin; |
nValor es el entero a convertir y cBin una variable de tipo AnsiStirng en que voy guardando el resultado de la conversión.
Conversión de binario a decimal (entero)
| Código: | int nValor = 0;
for (int j = cBin.Length(); j > 0; j--)
nValor += StrToInt(cBin.SubString(j,1)) * pow(2, (j - 1)); |
nValor es el entero en que se va a convertir el binario y cBin es este último. _________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
Carlos J. Fernandez Master


Registrado: 27 Oct 2004Mensajes: 574
|
Publicado: Mar 02 Feb, 2010 5:02 pm Asunto: |
|
|
Angel,
Algo debo estar haciendo algo mal, pero me he copiado las dos funciones y a la primera le paso:
Le paso 10111111 y me devuelve 253
A la segunda función le paso lo que me ha devuelto la primera:
Le paso 253 y me devuelve 11111101
Que hago mal? por que no coinciden los valores binarios?
Un abrazo.
Carlos |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Vie 05 Feb, 2010 8:46 am Asunto: |
|
|
| Carlos J. Fernandez escribió: | | Que hago mal? por que no coinciden los valores binarios? |
Carlos: No estás haciendo nada mal. Me he equivocado yo con el código. La conversión decimal a binario es correcta. El código para pasar de binario a decimal es este:
| Código: | int nValor = 0;
for (int j = cBin.Length(); j > 0; j --)
nValor += StrToInt(cBin.SubString(cBin.Length() - j + 1, 1)) * pow(2, (j - 1)); |
_________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
Carlos J. Fernandez Master


Registrado: 27 Oct 2004Mensajes: 574
|
Publicado: Vie 05 Feb, 2010 12:37 pm Asunto: |
|
|
Angel,
Vale, es que me estaba volviendo loco.
Muchas gracias por corregirlo.
Un abrazo.
Carlos |
|
| Volver arriba |
|
 |
|