スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

補数を使った減算

 コンピュータの基礎的なところを勉強していると2の補数というものが出てくる。整数値同士の引き算をする場合、コンピュータの内部では多くは2の補数を求めてから足し算をするとのことである。2の補数を求めるにはビットを反転させた1の補数を求め、その値に1を足せば良い。そのくらいのことは今でも覚えていたのだが、補数とは何なのか。数学的な定義はあるのか。そんなことはこれまで考えもしなかった。先月の引越の際、学生だった頃か、大学院生だった頃かに買った『速算術入門』という本が出てきて、ほとんど読んでいなかったので、最初の方を眺めてみと、冒頭にこうある。「補数とはどんなものでしょうか。どなたもむかし、学校で教わったわけですが、はっきり思い出されないかたもあるかもしれませんのでご説明してみますと」と説明が続く。本当に算数や数学で習ったか。全く記憶にない。具体的には889の補数は111なのだが、求め方は左側の桁から、足して9になるような1桁の数を並べて行き、最後の一番右側、つまり1の位だけは足して9になる数ではなく10になる数を添えて補数が完成する。正確には、1000に対する10の補数と呼ぶべきか。なるほど、これを拡張すると2の補数も理解できる。さらに一般化することも可能なはずで、Wikipediaに行ってみると見事に定義が書かれていた。「b進法において、自然数aを表現するのに必要な最小の桁数をnとしたとき、b^n - aをb進法におけるaに対するbの補数、b^n - a - 1をb進法におけるaに対するb - 1の補数という」とのことである。日常生活は10進法である。7や8や9などが並んでいる整数を引く場合、10の補数を求めて足して、最も左側に繰り上がった1を取り払えば簡単に引き算ができる。なるほど、なるほど。買った時にしっかり読んで理解しておくべきだった。
スポンサーサイト

コメント

コメントの投稿

管理者にだけ表示を許可する

トラックバック


この記事にトラックバックする(FC2ブログユーザー) URL

プロフィール

Glires

Author:Glires
生物学者の端くれ

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
カレンダー
09 | 2017/10 | 11
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -
メールフォーム

名前:
メール:
件名:
本文:

天気予報

-天気予報コム- -FC2-
アクセスカウンター
水槽
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。