符号つき変数

負の数を表すための変数と、負の数を表さずレジスタ内の数値をそのまま表す変数(語頭にunsignedがつく)とがある。

char型の変数は、1バイトの数値、すなわち1つのレジスタが扱えるが、最上位のビットを符号として扱うため、-128から127までの間の範囲の数値が扱える。
unsigned char型の変数は、1バイトの数値を扱え、全てのビットを2進数の桁として扱うため0から255までの間の範囲の数値が扱える。

char型の変数のレジスタに、16進数9Ahという数値が格納されているとする。
その数値は、

2進数(各ビットの状態を表す場合)では:10011010
ハードウェアから見た10進数:154
ソフトウェアから見た10進数:-102

である。
ハードウェアでは0を含めた正の整数しか扱われないのである。