2の補数を使用する理由
出題分類:基礎理論 > 離散数学
[出題:平成21年秋/AP午前問1]※「AP」は応用情報技術者試験を表す略号です。
2の補数なら、減算も加算で計算できる。
正解は「イ」
理解を深める
補数とは、コンピュータで負の数を表現するときに利用する表現法です。1の補数は2進数の各桁をビット反転させたもので、2の補数とは1の補数に1を加えたものです。
補数を使うと減算を加算で処理できます。たとえば、10-3の計算は10+(-3)と変形し、補数で-3を表現することで、減算も加算で行えるようにするということです。
選択肢「ア」はパリティビットの説明です。また、選択肢「エ」は1の補数の説明です。選択肢「ウ」の除算についてですが、たしかに除算は減算の組み合わせやシフト演算などで行いますが、補数を利用する理由にはなりません。
ビット演算
出題分類:基礎理論 > 離散数学
[出題:平成23年秋/AP午前問1]
8ビットは0~255だから、16ビットは2桁の256進数の値。256の位と1の位を入れ替えよう。
正解は「イ」
理解を深める
10進数で考えると手順がわかりやすいです。10進数の23をそれぞれの桁を入れ替えた32にするときの手順を考えます(「mod」は割り算の剰余を求める計算です)。
上の2つの結果を加算すれば入れ替え完了になります。
問題では16ビット中の8ビットを入れ替えるため、256で桁上がりすると考え、256で計算を行います。
つまり、(x div 256)+(x mod 256)×256となります。
浮動小数点の正規化表現(ビット演算)
出題分類:基礎理論 > 離散数学
[出題:平成22年春/AP午前問2]
正解は「ウ」
理解を深める
10進数の0.25は、2進数に変換すると0.01(×20)となります。また、仮数部の最上位桁が1になるように正規化すると、0.1×2-1となります。ここから各部について値をはめ込んでいきます。