Para empezar: qué quieres hacer? Capturar números por teclado? Qué piensas hacer con ellos?
Vamos a ver, si tu tienes un número en decimal, a la máquina le da igual en qué base esté, solo es la representación de un número, quiero decir:
unsigned char=8;
Aunque valga 8, internamente es igual que decir
unsgined char=0x08;
O ponerlo en binario directamente. No te hace falta comprar con '1' o '0'. Además de que es una bestialidad porque cuando acceda al array de char
Luego, si quieres mover bits, puedes usar el operado "<<" o ">>" para correr bits a la izquierda o a la derecha respectivamente.
Y para terminar, si solo quieres quedarte con ciertos bits, emplea máscara basadas en AND y OR.
Por ejemplo, tengo el número 9, en binario 1001 y quiero quedar con el 5º bit mas signficativo y el resto ignorarlo:
unsigned char numero=9; // También "unsigned char numero=0x09;"
numero = numero & 0x08; // Hago un AND de 0000 1001 con 0000 1000 para quedarme con el 5º bit más significativo.
Cosas así. Da mas información para que te ayudemos.