Extraer un nibble de 8 bits en C

Guía práctica para extraer un nibble de 4 bits en C: máscaras 0x0F, errores típicos (pos y desplazamientos) y ejemplos con 0xAB; versión con macros para firmware

17 sept 2025 • 4 min de lectura • Equipo Q2BSTUDIO

Inteligencia-Artificial-

Al enfrentar el problema Extraer un nibble de 8 bits en C pensé que sería sencillo: un nibble son 4 bits. Sin embargo, al trabajar el ejercicio descubrí confusiones sobre representación numérica, máscaras y trampas sintácticas de C. Aquí explico el razonamiento, los errores comunes y la solución correcta, con ejemplos prácticos.

Descripción del problema: se recibe un registro de 8 bits con valores entre 0 y 255 y una posición pos donde pos = 0 indica extraer el nibble inferior bits 0-3 y pos = 1 indica extraer el nibble superior bits 4-7. La salida debe ser el valor del nibble en decimal entre 0 y 15. Ejemplo: reg = 0xAB pos = 0 devuelve 11; reg = 0xAB pos = 1 devuelve 10.

Hexadecimal frente a decimal y binario: 0xAB en binario es 1010 1011 y en decimal 171. Al separar nibbles: nibble superior 1010 es 0xA decimal 10; nibble inferior 1011 es 0xB decimal 11. Un error común es confundir la representación visual hex con la salida decimal esperada: el resultado 11 es decimal, no el binario 11 que sería decimal 3.

Máscaras y la regla general: para un campo de N bits la máscara se obtiene con la fórmula (1 << N) - 1. Ejemplos: 3 bits (1 << 3) - 1 = 7 = 0x07 binario 0000 0111; 4 bits (1 << 4) - 1 = 15 = 0x0F binario 0000 1111; 8 bits (1 << 8) - 1 = 255 = 0xFF. Para extraer un nibble la máscara correcta es 0x0F.

Errores típicos en C y ejemplo de código con fallos: // Código inicial con errores unsigned char extractNibble(unsigned char reg,int pos){ if(pos = 0){ unsigned char lower = (reg >> 0) & 0x07; return lower;} else{ unsigned char higher = (reg >> 6) & 0x07; return higher;}} En ese fragmento hay tres problemas frecuentes: se usa la asignación en la condición if pos = 0 en vez de la comparación pos == 0; la máscara 0x07 es de 3 bits cuando el nibble necesita 4 bits 0x0F; y el desplazamiento para el nibble superior debe ser 4 y no 6.

Código corregido (función): #include <stdio.h> unsigned char extractNibble(unsigned char reg,int pos){ if(pos == 0){ return reg & 0x0F;} else { return (reg >> 4) & 0x0F;} } Esta versión devuelve 11 para reg = 0xAB pos = 0, 10 para reg = 0xAB pos = 1 y 15 para reg = 0xFF pos = 0.

Estilo firmware con macros: #define NIBBLE_MASK 0x0F #define NIBBLE_BITS 4 #define EXTRACT_NIBBLE(reg,pos) (((reg) >> ((pos) * NIBBLE_BITS)) & NIBBLE_MASK) unsigned char extractNibble(unsigned char reg,int pos){ return EXTRACT_NIBBLE(reg,pos); } Esta aproximación elimina condicionales y deja explícita la relación entre posición, desplazamiento y máscara, práctica habitual en desarrollo embebido.

Aprendizajes clave: un nibble son 4 bits y siempre se enmascara con 0x0F tras desplazar; los valores de registro pueden mostrarse en hexadecimal pero la salida suele interpretarse en decimal; la fórmula (1 << N) - 1 genera máscaras N bits; cuidado con = frente a == en C; y en firmware las macros ayudan a mantener el código claro y consistente.

Sobre Q2BSTUDIO: en Q2BSTUDIO somos una empresa de desarrollo de software que ofrece aplicaciones a medida y software a medida para proyectos embebidos y de empresa. Además trabajamos soluciones de inteligencia artificial y ofrecemos servicios de ia para empresas y agentes IA diseñados para automatizar tareas y mejorar procesos. Si buscas desarrollar una solución a medida conoce nuestras capacidades en desarrollo de aplicaciones y software multiplataforma y para proyectos de inteligencia artificial visita Inteligencia artificial. Complementamos estos servicios con experiencia en ciberseguridad, pentesting, servicios cloud aws y azure, servicios inteligencia de negocio y power bi para crear soluciones seguras, escalables y orientadas a datos.

Si trabajas con firmware o sistemas embebidos y necesitas apoyo para crear software fiable, integrar modelos de IA, asegurar la plataforma con ciberseguridad o desplegar en la nube con servicios cloud aws y azure, en Q2BSTUDIO podemos ayudarte desde el diseño hasta la puesta en producción. Palabras clave que nos definen: aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA, power bi.

Conclusión: un ejercicio aparentemente simple como extraer un nibble enseña mucho sobre manipulación de bits, sistemas numéricos y peligros sintácticos en C. Practicar estos casos mejora la calidad del firmware y evita errores que en el mundo real pueden afectar periféricos como UART o ADC. Si necesitas ayuda profesional para desarrollar firmware, soluciones IA o asegurar tu infraestructura, contacta con Q2BSTUDIO y convertimos tu reto en un proyecto exitoso.

¿UNA PAUSA?

Juega un momento antes de irte

NUESTROS SERVICIOS

Cómo podemos ayudarte

Inteligencia artificial

Agentes de IA, chatbots y asistentes inteligentes que automatizan tareas y atienden a tus clientes 24/7 para mejorar la eficiencia de tu negocio.

Más info

Desarrollo de software

Aplicaciones web, móviles y de escritorio, intranets, e-commerce, SaaS y plataformas de gestión diseñadas para las necesidades concretas de tu empresa.

Más info

Servicios cloud

Migración, infraestructura, hosting gestionado, alta disponibilidad y seguridad en Microsoft Azure y Amazon Web Services para que tu negocio escale sin límites.

Más info

Ciberseguridad y pentesting

Auditorías de seguridad, test de intrusión (pentesting) y protección de aplicaciones, datos e infraestructura on-premise y cloud, con hacking ético y cumplimiento normativo.

Más info

Business Intelligence

Cuadros de mando y análisis de datos con Power BI: integramos tus fuentes, diseñamos dashboards y KPIs y convertimos tus datos en decisiones.

Más info

Automatización de procesos

Automatizamos tareas repetitivas y conectamos tus aplicaciones con n8n, Power Automate, Make y RPA, eliminando trabajo manual y aumentando la productividad.

Más info

Formación para empresas

Formamos a tus equipos en tecnología con criterio: desarrollo web, bases de datos, Git, buenas prácticas y seguridad, automatización con n8n, inteligencia artificial para empresas y creación de soluciones de IA con Azure AI Foundry.

Más info

Auditoría de código

Auditamos el código que creas tú, tu equipo o una IA: te decimos qué está bien y qué mejorar, lo securizamos y lo dejamos listo para producción, web o app.

Más info

Generación de imágenes con IA

Creamos por ti las imágenes que necesita tu negocio con inteligencia artificial: producto, redes, publicidad, ilustración y avatares. Tú nos dices qué quieres y te lo entregamos listo para usar.

Más info

Generación de vídeos con IA

Creamos por ti vídeos con inteligencia artificial: promocionales, para redes, presentadores virtuales, doblaje y animaciones. Nos cuentas la idea y te lo entregamos montado y listo para publicar.

Más info

Avatares conversacionales con IA

Creamos avatares conversacionales con IA —humanos digitales con cara y voz— que atienden a tus clientes y equipos con el conocimiento de tu empresa, en tu web, monitores interactivos, WhatsApp o Teams.

Más info

Marketing Online e IA

Google Ads, Meta Ads, LinkedIn Ads y posicionamiento en motores de IA (GEO/AEO): captamos clientes y hacemos que tu marca aparezca donde te buscan, también en ChatGPT, Gemini y Perplexity.

Más info

¿Tienes un proyecto en mente?

Cuéntanos tu visión y la convertimos en una solución de software. Sea cual sea el alcance, hacemos realidad tu idea.

Live Chat