You are on page 1of 1

Ejercicios de Manejo de Bits

1) Haciendo uso de operadores a nivel de bits escriba una función y diga si un número entero
es positivo o negativo.

2) Usando operaciones de bits multiplica y divide por potencias de 2

3) Lea un entero y reporte el valor de los bits pares

4) Si desea codificar n posibles valores. Cuantos bits son necesarios?

5) Dada una variable tipo char muestre cada uno de sus bits

6) Se sabe que para convertir una letra minúscula en mayúscula se resta 32, es decir el 6to bit
(2^5=32) está en 1, entonces debemos convertirlo a cero. Utilizando esta idea convierta una
letra minúscula a otra en mayúscula.

7) Un artículo tiene numérico almacenado en 8 bits. Los 3 primeros indican la familia, los dos
siguientes la subfamilia mientras que los 3 últimos indican un numero correlativo. Dado un
número que representa el código diga cual es su familia, la subfamilia y el correlativo.

8) Dados dos bytes, coloque los 4 bits superiores del primer byte junto a los 4 bits inferiores
del segundo byte, y los 4 bits inferiores del primer byte, junto a los 4 bits superiores del
segundo byte.

9) En un unsigned char intercambie los 4 bits inferiores con los superiores

10) En un short intercambie los bits del primer byte con los del segundo

11) Escriba un programa que invierta el orden de los bits de un valor entero unsigned. El
programa debe introducir el valor del usuario y llamar a la función invierteBits para imprimir
los bits en orden inverso. Imprima el valor en bits, tanto antes como después de que los bits se
inviertan, para confirmar que se invirtieron de manera correcta.

12) El operador de desplazamiento a la izquierda puede utilizarse para empacar dos valores de
carácter en una variable entera unsigned. Escriba un programa que introduzca dos caracteres
desde el teclado y que los pase a la función empacaCaracteres. Para empacar dos caracteres
en una variable entera unsigned, asigne el primer carácter a la variable unsigned, desplace 8
posiciones de bits hacia la izquierda la variable unsigned y combine la variable unsigned con el
segundo carácter por medio del operador OR incluyente a nivel de bits. El programa debe
arrojar los caracteres en su formato de bits, antes y después de que se empaquen en la
variable entera unsigned, para demostrar que los caracteres están empacados correctamente
en la variable unsigned.

13) Por medio del operador de desplazamiento a la derecha, el operador a nivel de bits AND y
una máscara, escriba una función empacaCaracteres que tome la variable entera unsigned del
ejercicio 10.13, y que la desempaque en dos caracteres. Para desempacar dos caracteres de
una variable entera unsigned, combine la variable unsigned con la máscara 65280 (00000000
00000000 11111111 00000000), y desplace 8 bits hacia la derecha al resultado. Asigne el valor
resultante a una variable char. Después combine la variable entera unsigned con la máscara
255 (00000000 00000000 00000000 11111111). Asigne el resultado a otra variable char. El
programa debe imprimir la variable entera unsigned en bits, antes de que sea desempacada, y
después debe imprimir los caracteres en bits para confirmar que se desempacaron
correctamente.

You might also like