Impresion en bits de un entero sin signo

¿Has encontrado un error? ¿Tienes la solución? Deja tu correción ;-)

Antes de comentar: Gran parte de los ejercicios propuestos no tienen librerías debido a que Wordpress las eliminó al verlas como etiquetas HTML. Si sabes/tienes/conoces las librerías que hacen falta, déjalo en los comentarios. Y lo mas importante: Todos los ejemplos fueron realizados por estudiante con únicamente conocimiento básico del lenguaje, no de programación.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <stdio.h>
 
void despliegaBits( unsigned valor ); /* prototipo */
 
int main(){ 
   unsigned x; /* variable para almacenar la entrada del usuario */
 
   printf( "Introduzca un entero sin signo: " );
   scanf( "%u", &x ); 
   despliegaBits( x );
   
   return 0; /* indica terminación exitosa */
 } /* fin de main */
 
/* despliega los bits de un valor entero sin signo */
void despliegaBits( unsigned valor )
{    unsigned c; /* contador */
 
   /* define despliegaMascara y desplaza 31 bits hacia la izquierda */
   unsigned despliegaMascara = 1 << 31; 
    printf( "%10u = ", valor );
 
   /* ciclo a través de los bits */ 
   for ( c = 1; c <= 32; c++ ) { 
      putchar( valor & despliegaMascara ? '1' : '0' );      valor <<= 1; /* desplaza valor 1  hacia la izquierda */   
 
      if ( c % 8 == 0 ) { /* despliega espacio después de 8 bits */
         putchar( ' ' );
      } /* fin de if */ 
   } /* fin de for */
 
   putchar( 'n' );
} /* fin de la función despliegaBits */

Punto importante: Si vas a sugerir un segmento de código en algún lenguaje debes hacerlo así:

  • Si es lenguaje C <code lang="c">Código en C</code>
  • Si es lenguaje Pascal <code lang="pascal">Aquí dentro el código de Pascal</code>.

De esta manera el código coloreas el código.

Deja un comentario

Suscribirse a los comentarios.