en fait, char n´est pas forcément un caractere :
avant tout, le type char, est un nombre, codé sous 1 octet, signé :
donc de -128 à +127
le unsigned char est un nombre de 1 octet non signé :
de 0 à 255
tu peux manipuler les bits de n´importe quel type de données, int , long, short, unsigned ou signed, comme tu le sens. Il n´y a rien de spécifique pour le binaire : de toute façon, une fois que tu regardes le code binaire, ce n´est pas important de savoir si c´est signé ou non signé.
-> c´est juste l´interprétation que tu vas en faire.
De meme, on stocke les caracteres dans des char, mais pour l´ordi, un char est un nombre avant tout.
Qaund tu dis ´A´ ça vaut dire " code ASCII de A" ( a savoir 65)
l´ordi voit toujours des nombres. C´est au moment ou tu fais ton cout ou ton printf que tu dis sous quel forme tu veux afficher la chose.
Pour te prouver qu´il n´a aucun probleme avec ça, essaie de faire afficher :
´A´ + 2
tu verras qu´il te sortira ´C´
pour lui, pas de soucis.