Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Convertir de Entreo a Binario

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Convertir de Entreo a Binario Responder citando

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
Mensaje    Asunto: Responder citando

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
Mensaje    Asunto: Entero a binario y binario a entero Responder citando

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
Ver perfil de usuario Enviar mensaje privado Enviar email
Mostrar mensajes de anteriores:   
Cambiar a:  
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


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.