テキストの説明がぶっきら棒であまり良くないですね。
十進法の表記は下の桁から 1 ( = 10^0), 10 ( = 10^1), 100 ( = 10^2), 1000 ( = 10^3), 10000 ( =10^4) ・・・・・ の「まとまり」が何個あるのか 0から9の数字で表すやり方です。
例:654 = 4*1 + 5*10 + 6*100
二進法は上の10の代わりに2にしたもので、
1 ( = 2^0), 2 ( = 2^1), 4 ( = 2^2), 8 ( = 2^3),16 ( = 2^4) ・・・・・ の「まとまり」が何個あるのか 0と1の数字で表すやり方です。(常識として、1,2,4,8,16,32,64,128,256,512,1024くらいまでは覚えておきましょう。十進法の位取りで、一、十、百、千、万、億、兆、京などと覚えているのと似たようなもの)
例:11101010 = 0*1 + 1*2 + 0*4 + 1*8 + 0*16 + 1*32 + 1*64 + 1*128 ( = [234]d )
二進法と十進法で同じ文字(0,1)を使うので、混乱を避けたい場合は[xxx]b、[yyy]d とか [xxx]2、[yyy]10 というふうに、二進法か十進法か明示した表記をします。
二進数表記から十進数表記への変換は上の様に考えればよいのですが、逆に御質問の十進数表記から二進数表記の変換の場合が少し直感的に分かりづらいのは確かでしょう。
これは、「与えられた数を2で順に割っていった残り(0か1)が下の桁から順に二進法の表記となる」という(理論的な)説明が、実際の頭の中での(直感的な)計算の理解の仕方と違っているからではないでしょうか。コンピュータでの処理の場合はこの考え方が合理的です。二進数に変換した後の表記が何桁になるのか知らなくても処理できるからです。(実際には扱える上限は既知ですが、理論上の話として)
しかし、実際に[234]d を二進数表記に変換すすことを考えた場合、
先程の1,2,4,.... の数列を覚えているとして、
234に含まれる最大の数は(256ではなく)128 → 「128の桁」は1
234-128 = 106 これには64が含まれている →「64の桁」は1
106-64 = 42 これには32が含まれている → 「32の桁」は1
42-32 = 10 これには16が含まれない →「16の桁」は0
これには8が含まれる → 「8の桁」は1
10-8 = 2 これには4が含まれない →「4の桁」は0
これには2が含まれる →「2の桁」は1
2-2 = 0 これには1が含まれない →「1の桁」は0
従って、[234]d → [11101010]b
というふうに上の桁から変換するのが自然かもしれません。
12345円と言われた時に、1万円札1枚 + 千円札2枚 + 百円玉3個 + 十円玉4個 + 一円玉5個 (実際には五円玉があるので、ちょっと違うけど ^_^;)というように上の桁から金額のイメージを持つ方が普通であり、
まず10で割って余りが5、次に10で割って余りが4....というように下の桁から把握するやり方には普通慣れていません。違和感がありますね。
しかし、理論やコンピュータの演算回路の設計では、「余り」に注目する方がアルゴリズムが綺麗ですし、実用上も便利なので、そのように説明されることが多いのでしょう。割っていって余りを書き出し下の桁から二進数表記を求めるやり方の原理(理屈)は二進数表記の定義そのものから直ぐに導けます。あらかじめ二進数表記があると仮定して、各桁の数字(0か1)を求めるには、順番に2で割って行って、2の累乗の「まとまり」を作っていけばよいだけです。
No.5さんの回答が詳しく説明されているように、計算して行けば、途中の58や29が(思いつき/ヒラメキ ではなく)機械的な計算で出てくることが分かります。しかし、途中の因数を求めるのは決して本質的なことではなく、先に示したように、2の累乗の「まとまり」が有るか無いかだけの判断で引き算だけの計算で求めるやり方もあるわけです。
お礼
10進法で 考えてくれたので 素人にも よくわかりました。 ありがとうございました。