【ライタスの日常】資格勉強で学んだ「2進数の足し算・引き算」の話
こんにちは。
ライタスの営業担当・Kです。
資格勉強の続きとして、
最近は 2進数の足し算・引き算 について学んでいます。
普段あまり意識しない部分ですが、
コンピューターの内部処理を理解するうえで
とても重要な考え方だと感じました。
【2進数の足し算】
2進数の足し算はとてもシンプルで、
足して「2」になったら繰り上がる、これだけです。
例えば、
0 + 1 = 1
1 + 0 = 1
1 + 1 = 10(2になったので繰り上がり)
10進数と同じ考え方ですが、使う数字が「0」と「1」だけなので、慣れると直感的に理解できます。
【2進数の引き算はどうしているのか?】
実はコンピューターは、
引き算を直接行っていません。
引き算の代わりに行っているのが、
「負の数を足す」 という考え方です。
そのために登場するのが 2の補数 です。
【負の数は「2の補数」で表す】
2進数で負の数を表すときは、次の手順を使います。
正の数を2進数で表す
0と1をすべて反転させる(ビット反転)
その結果に「1」を足す
この
「反転して+1」
を行ったものが、2の補数です。
【2の補数の特徴(補足)】
2の補数にはいくつか重要な特徴があります。
十分なビット数が確保されている場合、
先頭ビットが符号ビットとして使われる
0:正の数
1:負の数
コンピューターには「−(マイナス)」の記号が存在しない
→ その代わりに先頭ビットで符号を表現している
2の補数に、同じ「2の補数の操作」を行うと
元の正の数に戻る
このあたりは仕組みとして知っておくと、計算問題の理解がかなり楽になります。
【8ビット2進数で表せる数の範囲】
ここも試験対策として重要なポイントです。
例として、
2進数「10000001」を10進数に変換してみます。
符号なしとして扱う場合
→ 129
**符号付き(2の補数)**として扱う場合
→ 先頭ビットが「1」なので負の数
→ ビット反転して「1」を足す
→ 01111111(=127)
→ よって −127
この考え方から、8ビット2進数で表せる範囲は以下の通りになります。
符号なし2進数:0 ~ 255
符号付き2進数:−128 ~ 127
【まとめ】
最初はややこしく感じましたが、
「コンピューターは足し算しかしていない」
と考えると、少し理解しやすくなりました。
引き続き、
勉強した内容はノートにまとめつつ、
こうしてアウトプットしていこうと思います。
それでは、今日はこのあたりで。
#ライタスの日常
#資格勉強
#基本情報技術者
#2進数
#2の補数
#学びのアウトプット
.png)
.png)
.jpg)
コメント
コメントを投稿