Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Ejercicios: Operaciones de Bits

Universidad Nacional de Río Negro

Acerca de

La manipulación de bits es una habilidad fundamental en la programación en C, especialmente para el desarrollo de bajo nivel, la optimización y la programación de sistemas embebidos. Estos ejercicios se centran en el uso de los operadores a nivel de bits (&, |, ^, ~, <<, >>) para manipular los datos de forma directa y eficiente.

Para profundizar en los conceptos teóricos, podés consultar el siguiente capítulo del apunte:

Manipulación de Bits Individuales

Ejercicio 27.1 - b.1 - Obtener el n-ésimo bit ⭐⭐⭐⭐☆

Escribir una función int get_bit(int numero, int n) que devuelva el valor del bit en la posición n de un número (0 o 1).

Ejercicio 27.2 - b.2 - Establecer el n-ésimo bit (Set) ⭐⭐⭐⭐☆

Escribir una función int set_bit(int numero, int n) que encienda (ponga en 1) el bit en la posición n sin alterar los demás.

Ejercicio 27.3 - b.3 - Limpiar el n-ésimo bit (Clear) ⭐⭐⭐⭐☆

Escribir una función int clear_bit(int numero, int n) que apague (ponga en 0) el bit en la posición n.

Ejercicio 27.4 - b.4 - Alternar el n-ésimo bit (Toggle) ⭐⭐⭐⭐☆

Escribir una función int toggle_bit(int numero, int n) que invierta el valor del bit en la posición n (de 0 a 1, o de 1 a 0).

Algoritmos con Bits

Ejercicio 27.5 - b.5 - Contar bits encendidos (Hamming Weight) ⭐⭐⭐⭐☆

Implementar una función que cuente el número de bits que están en 1 en la representación binaria de un número.

Ejercicio 27.6 - b.6 - Verificar si es potencia de dos ⭐⭐☆☆☆

Escribir una función que determine si un número entero positivo es una potencia de dos (ej. 2, 4, 8, 16...).

Ejercicio 27.7 - b.7 - Intercambio con XOR ⭐⭐☆☆☆

Implementar una función void swap(int *a, int *b) que intercambie los valores de dos variables sin usar una variable temporal, utilizando únicamente el operador XOR.

Ejercicio 27.8 - b.8 - Uso de máscaras de bits para permisos ⭐⭐⭐⭐☆

Simular un sistema de permisos de archivo (Lectura, Escritura, Ejecución) usando una sola variable unsigned char.