4月24日(水)1コマ目
今日、やったこと
10進数の負数を2進数へ変換
今日のホワイトボード
基数の補数と減基数の補数の関係
下図のような関係。
![]() |
| 図 基数の補数と減基数の補数の関係 |
2進数における基数の補数(2の補数)の求め方
2種類の方法を紹介。
方法1
減基数の補数(1の補数)を求め、+1して基数の補数(2の補数)へ
![]() |
| 図 2進数での基数の補数(2の補数)の求め方 方法1 |
減基数の補数(1の補数)はビットを反転するだけ。
減基数の補数(1の補数)に+1すると、基数の補数(2の補数)になる。
方法2に比べると間違いにくい。
方法2
ケタ上がりした最小値(4ケタなら5ケタの10000)からー1
![]() |
| 図 2進数での基数の補数(2の補数)の求め方 方法2 |
引き算に要注意。
方法1より計算量が少ない。
コンピュータ内で負数は
コンピュータ内ではデータは2進数で表される。
負数は絶対値の基数の補数(2の補数)で表される。
10進数の負数を2進数へ
![]() |
| 図 10進数の負数を2進数へ |
①絶対値を2進数へ
絶対値は0からどれくらい離れているか。
要は符号をとった値。
②絶対値の2進数の2の補数を求める
上記の方法1、方法2のどちらでも。
なぜコンピュータ内では負数を2の補数で表す?
負数を2の補数で表すと引き算を足し算で処理できるから。
![]() |
| 図 負数を2の補数で表す->引き算が足し算できるから |
ポイントは4ビット同士の計算なら結果は4ビットのみ有効にするところ。
このおかげでコンピュータは加算回路だけで足し算、引き算ができる。
減算回路を用意する必要がない。
ちなみに10進数でも
- 負数を基数の補数(10の補数)で表す
- 計算結果ケタ数は計算する値のケタ数のみ有効





