解決済みの質問
春の応用処理技術者試験に向けて遅ればせながら参考書を読み始めたのですが、早速つまづきました。
「2けたの2進数x1x2が表す整数をxとする。2進数x2x1が表す整数を、xの式で表したものはどれか。ここで、int(r)は非負の実数rの小数点以下を切り捨てた整数を表す。」
という問題があったのですが、解説がよく理解できません。
【解説】
「2進数x1x2が表す整数は次のようになります。
x = x1 × 2^1 + x2 × 2^0
これを変形すると、次のようになります。
x = 2(x1) + x2 …(1)
一方2進数x2x1が表す整数をx'とすると、同様に次のようになります。
x' = 2x2 + x1 …(2)
(1)より
x2 = x - 2x1
(2)に代入して
x' = 2x -4(x1) + x1
x' = 2x -3(x1)
ところでxの定義から、xを2で割った商はx1となります。←ここです
つまり x1 = int(x/2) となっています。
したがって答えは 2x - 3int(x/2) となります。」
xを2で割った商は、何故 x1 なんですか?
x = 2(x1) + x2 を2で割った商は x1 + (x2/2) ではないのでしょうか…
よくわからないので、どなたかご教授ください!
宜しくお願いします。
投稿日時 - 2010-02-26 21:53:13
x1とx2は二進数のある桁の数字ですから、0か1かのどちらかです。
ここで「xを2で割った商」と書かれているのは、あくまで整数の範囲で割り算を行った場合の話なので、x2はもう2では割れません。
したがって、商はx1で余りがx2になる、ということです。
投稿日時 - 2010-02-26 22:04:18
お礼
お二方共、ありがとうございました。
先に回答をいただけた方には申し訳ないのですが、hiro001001さんの回答がとてもわかりやすかったのでベストアンサーにさせていただきます。
投稿日時 - 2010-02-26 22:45:33
13人が「このQ&Aが役に立った」と投票しています