« 【応用情報】 基礎理論-基数 | Main | 【応用情報】 基礎理論-補数2 »

February 01, 2013

【応用情報】 基礎理論-補数1

数値表現(1)<補数>

【補数】
 補数とは、ある数が、ある基準となる数となるために加える数。
 ・・・って相変わらず言葉で書いても意味不明だな。
 入社当初はなんとなく暗記で済ませたものだ(^^;)

 数式で説明すると
  a + x = b
 で、xはaのbに対する補数と言う。
 10進数の例からあげてみると、4の10に対する補数は6ってこと。
 これもわかるようなわからないような微妙な表現。

 ここから本題。
 補数には以下の2つがある。
  (1) その桁で最大の数になる値
  (2) 次の桁に繰り上がるための値

 上記(1), (2)は、あるn進数において以下のように表現する。
  (1) n-1の補数
  (2) nの補数

 例えば、2桁の10進数では以下のようになる。
  (1)  9の補数:その数が 99になるための値
  (2) 10の補数:その数が100になるための値

 具体的に例をあげると、以下のようになる。
  (1) 2桁の10進数「33」の「 9の補数」は、 99 - 33 = 「66」
  (2) 2桁の10進数「33」の「10の補数」は、100 - 33 = 「67」

 さて、情報処理試験で出題されるのは2進数の補数である。
 2進数も同じ考え方でいける。
 例えば、
  (1) 4桁の2進数「1101」の「1の補数」は、 1111 - 1101 = 「0010」
  (2) 4桁の2進数「1101」の「2の補数」は、10000 - 1101 = 「0011」
 と表現できる。

 ここまで理解して、ようやく教科書的(一般的)な説明が理解できる。

 ●ある2進数の1の補数は、その数を反転した値である
  →全部の桁を1にすればいいから

 ●ある2進数の2の補数は、その数の1の補数に1を加えた値である
  →繰り上げて一つ桁をあげればいいから

 そもそもなんで1の補数、2の補数って2つあるのか?
 そんな疑問はようやく無くなりましたね。

 [参考:補数,シフト演算,浮動小数点数]
 http://software.nikkeibp.co.jp/software/special/mind/mind76.html

 [参考:2の補数]
 http://mt-net.vis.ne.jp/ADFE_mail/0147.htm

|

« 【応用情報】 基礎理論-基数 | Main | 【応用情報】 基礎理論-補数2 »

Comments

The comments to this entry are closed.

TrackBack


Listed below are links to weblogs that reference 【応用情報】 基礎理論-補数1:

« 【応用情報】 基礎理論-基数 | Main | 【応用情報】 基礎理論-補数2 »