 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Invitado
|
Publicado: Mar 08 Jul, 2003 7:59 pm Asunto: Convertir de Entreo a Binario |
|
|
Me interesaria que alguien me pudiera decir como convertir de un Entero a Binario y al reves, o si existe una funcion de C++ Builder que ya lo haga, he querido usar la IntToBin, pero no se como se usa.
Espero que alguin me pueda ayudar |
|
| Volver arriba |
|
 |
Invitado
|
Publicado: Mie 09 Jul, 2003 5:32 am Asunto: |
|
|
Creoq ue si existe la funcion (no me acuerdo), pero si recuerdas programacion I, lo que tines qeu uhacer es implementar divisiones entre 2 y guardar el resto
Te muestro la manera manual de hacerlo decimal->binario
Por ejemplo Numero 45
1) Ves en la tabla el numero mas cercano a 45 (que no se pase)
128 64 32 16 8 4 2 1 0
0 0 1 0 0 0 0 0
2) ahora cuanto falta, 45-32=13 entonces y 13 queda en la posicio del 8 y
queda
128 64 32 16 8 4 2 1 0 = 32+8+4+1=45
0 0 1 0 1 1 0 1
Numero bianario = 101101
Espero te sirva, pero creo que si existe la funcion y me parece que es una "mascara" definida enla funcion printf |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Mie 09 Jul, 2003 7:50 am Asunto: Entero a binario y binario a entero |
|
|
Para pasar de decimal a binario tomas el valor, vas dividiendo por 2 y guardas los restos de la división; coges ese cociente (sin decimales) y repites la operación hasta que el último cociente sea 0:
1ª.- 41 : 2 = 20; Resto = 1 (Posición más a la derecha del binario)
2ª.- 20 : 2 = 10; Resto = 0
3ª.- 10 : 2 = 5; Resto = 0
4ª.- 5 : 2 = 2; Resto = 1
5ª.- 2 : 2 = 1; Resto = 0
6ª.- 1 : 2 = 0; Resto = 1 (Posición más a la izquierda del binario)
El número binario se compone tomando todos estos restos, pero empezando por el último; es decir: 41 decimal es 101001 binario
No sé si hay alguna función. Yo uso este código:
| Código: | 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.
Para hacer la conversión inversa puedes usar el siguiente código:
| Código: | 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. Te lo explico:
Tomas cada posición del binario y lo multiplicas por 2 elevado a la posición ocupada en la cadena menos uno y vas sumado esos resultados. Por ejemplo:
El binario 1100101 será:
1 x 2^6 = 64
1 x 2^5 = 32
0 x 2^4 = 0
0 x 2^3 = 0
1 x 2^2 = 4
0 x 2^1 = 0
1 x 2^0 = 1 ---> Resultado: 64 + 32 + 4 + 1 = 101 _________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|