つづいて、2進数での負数の表現方法を学びます。
10進数で正数か負数かを表現するには先頭に+か-をつけますよね?
2進数でも同じように+か-をつければいいのですが、コンピュータは1か0かのどちらかの表現しかできません。そこで先頭の桁を符号として扱うことで+、-を表現します。先頭のビットが1の場合は負の数、0の場合は正の数とします。
00000001 → 正の1
10000001 → 負の1
という感じです。
ここで疑問が出てきますね。10000001は129じゃないの?
どうやって見分けるの?と・・・
それはコンピュータの都合(正確にはソフトウェアの都合)で決まります。
今動いているソフトウェアが「このデータの先頭ビットは数字ですよ」と定義してあつかうのであれば10000001は129として扱われます。「このデータの先頭ビットは符号ビットです」と定義してあつかうのであれば-1として扱われます。