Okapi Project   Web technological site for the beginner... Top

データ表現

2の負数

つづいて、2進数での負数の表現方法を学びます。

10進数で正数か負数かを表現するには先頭に+か-をつけますよね?

2進数でも同じように+か-をつければいいのですが、コンピュータは1か0かのどちらかの表現しかできません。そこで先頭の桁を符号として扱うことで+、-を表現します。先頭のビットが1の場合は負の数、0の場合は正の数とします。

00000001 → 正の1

10000001 → 負の1

という感じです。

ヒント!

ここで疑問が出てきますね。10000001は129じゃないの?
どうやって見分けるの?と・・・

それはコンピュータの都合(正確にはソフトウェアの都合)で決まります。

今動いているソフトウェアが「このデータの先頭ビットは数字ですよ」と定義してあつかうのであれば10000001は129として扱われます。「このデータの先頭ビットは符号ビットです」と定義してあつかうのであれば-1として扱われます。

negative binary