Em linguagens onde não há suporte para enums, eu costumo sim criar uma classe ou alguma série de funções que validem o valor recebido, onde vamos supor que eu use somente 4 bits, qualquer valor acima de 15 seria inválido.