C'est une question classique, mais qui n'a pas de réponse, car pour un ordinateur tout est déjà en binaire (sauf pour un ordinateur ternaire ou analogique (mais ça ne court pas les rues (sauf si ce sont des robots (ok, je m'arrête)))).
Un caratère est un octet (sauf...). Il contient huit valeurs binaires. Il n'y pas de conversion à faire.
Cependant, s'il faut extraire un bit, il faut faire quelque chose, par exemple, utiliser la technique du masquage et du décalage.
Par exemple, si le bit à récupérer est le 3ème :
char c;
int val_bin3;
c = -107; //par exemple
val_bin3 = c & 0x4 >> 2; |
Pour injecter une valeur binaire dans un octet, on peut utiliser l'opérateur booléen | (ou) ou & (et).
Mais pour échanger deux bits, il y a aussi d'autres méthodes, dont certaines ne nécessitent pas d'extraire et d'injecter des bits. On peut parfois se débrouiller avec des opérations arithmétiques plutôt qu'avec des opérations booléennes.