Foros del Web » Programación para mayores de 30 ;) » C/C++ »

nivel bits

Estas en el tema de nivel bits en el foro de C/C++ en Foros del Web. Hola foro, necesito hacer que un numero se vea a nivel de bits, por ejemplo, el 7 en un registro de 16 bits que sea ...
  #1 (permalink)  
Antiguo 17/10/2010, 20:28
Avatar de Lizy94  
Fecha de Ingreso: diciembre-2009
Mensajes: 149
Antigüedad: 14 años, 4 meses
Puntos: 0
nivel bits

Hola foro, necesito hacer que un numero se vea a nivel de bits, por ejemplo, el 7 en un registro de 16 bits

que sea algo asi

7 ----> 0000 0000 0000 0111

si alguien me pudiese dar una idea o un link, por favor
  #2 (permalink)  
Antiguo 17/10/2010, 21:38
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: nivel bits

Código:
#include <stdio.h>

void print_bits(int n){
    int i;
    for(i = 16; i >= 0; i--)
        printf("%d", (n >> i) & 1);
    printf("\n");
}

int main(){
    int n;
    scanf("%d", &n);
    print_bits(n);
}
Si int es de 32bits y?
  #3 (permalink)  
Antiguo 18/10/2010, 01:06
Avatar de Lizy94  
Fecha de Ingreso: diciembre-2009
Mensajes: 149
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: nivel bits

Cita:
Iniciado por razpeitia Ver Mensaje
Código:
#include <stdio.h>

void print_bits(int n){
    int i;
    for(i = 16; i >= 0; i--)
        printf("%d", (n >> i) & 1);
    printf("\n");
}

int main(){
    int n;
    scanf("%d", &n);
    print_bits(n);
}
Si int es de 32bits y?
gracias, solo una pregunta más esta linea q hace printf("%d", (n >> i) & 1);
y al correr el codigo si me muestra los datos como deberia pero con saltos de linea cada dos bits, y yo lo quisiera corrido. Gracias
  #4 (permalink)  
Antiguo 18/10/2010, 01:10
Avatar de Lizy94  
Fecha de Ingreso: diciembre-2009
Mensajes: 149
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: nivel bits

a ver te pongo mi codigo xq ya me confundí, los numeros q introduzco en binario ya no coinciden con los valores q muestra, este

printf ("1. Con un int de 16 bits X:= %d %d\n",(*x >> i)&1,(*y >> i)&1,*x,*y);

void divertido(int *x,int *y)
{
for(int i = 16; i >= 0; i--)
printf ("1. Con un int de 16 bits X:= %d %d\n",(*x >> i)&1,(*y >> i)&1,*x,*y);
*x=*x^*y;
printf ("\n\n2. *y=*x^*y es:= %d %d\n",*x,*y);
*y=*x^*y;
printf ("\n\n3. *x=*x^*y es:= %d %d\n",*x,*y);
*x=*x^*y;
printf ("\n\n3. *x=*x^*y es:= %d %d\n",*x,*y);


}

Etiquetas: nivel
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:52.