Utilizando nibbles (variables de 4 bits) en Windows C / C ++

Estoy programando encabezados de red y muchos protocolos usan campos de 4 bits. ¿Hay algún tipo conveniente que pueda usar para representar esta información?

El tipo más pequeño que he encontrado es un BYTE. Entonces debo usar muchas operaciones binarias para hacer referencia solo a unos pocos bits dentro de esa variable.