10進数を2進数に変えよう

とにかく理由(わけ)が分からないと‥おもろくもない。

前ベージの答え

 問1 (2) 順に数えて、次の数が 10 0000 0000
    = 9= 512 となると考えた方が早い。
 問2 (1)11.011
  =1×21 +1×20 + 1×2-2 +1×2-3
  =2+1+ 0.25 + 0.125
  = 3.375
補足です 、考えようではムダ足ですか。 
 問1 (1)86 (計算略します)
    (2)511
 問2 (1)  3. 375
    (2) 5. 3125 (計算略します)
問3 関数Boxのルールの答え 
(1)30、110  
(2)15、55 
 (ここは2進数と関係はありません)

55(10)  を2進数に直す(方法その1)  

あまり多用しませんけどm(*_*)m

55=32+16+4+2+1
  =2+2+2+2+2
  =1×2+1×2+1×2+1×2+1×2
  =110111(2) 当然のことながら、これは2進数を10進数に直す計算順序と逆なんですが。
マア、32=2、64=26 などが頭葉のどっかにあるからです。
 次に発想を変えて見ましょう! シフトについては 論理シフト演算(1010ページ)に詳しく(くわしく)述べますから、 ここではチョット触れる程度です。
正の整数を扱っています。

10進数→2進数について


仮に2進整数 C=cncn-1‥‥c3c2c1
に変わったとします。すべてのcmは0か1です。

Cを2で割る(をかけると同じ)と、1ビット右シフトと同じで
最下位ビットc1 が整数Boxから飛び出します。
(もし小数Boxが続いておれば、小数第1位ビットへ入る。)
 c1は0か1ですから、2で割ったときの余りです。
 c1=0 のとき元の数は偶数(割り切れる)
 C1=1のとき元の数は奇数です。 次に整数Boxに残った
 cncn-1‥‥c3c2 について、2で割ります。この最下位ビットc2が飛び出します。次々に繰り返します。最後に残りがcnになるまで続けます。
次はこれを使った計算方法です。

55 (10)   を2進数に直す(方法その2)

これは良く使いますm(*_*)m

 
補足だそくに入りますヨ
2   |  32+16 +4 +2 +1
2   |  16  +8 +2 +1    余り 1
2   |   8   +4 +1         余り 1
2   |   4   +2              余り   1
2   |   2   +1              余り 0
2   |   1                      余り 1
         0                      余り 1

小数の10進数→2進小数

かんたんにふれます。
詳しくは分数と小数(0111ページ)に書きます。 

例 0.8125(10)   を2進小数に


 この理屈も 楽しいので、 詳しい説明は 分数と小数のページ
 ゆずりました
m(*_*)mです。
補足だそくに入りますヨ
0.8125× 2 = 1.6250
 整数(せいすう)部のを取り(出して)
0.625 × 2 = 1.250
 整数部のを取り
0.25 ×  2 =  0.5  整数部は0       
0.5 ×2  =  1.0
 整数部のを取り
残りが0  <0 になるまで続ける>

問題で〜す n(^_^)n

問1 1000000(10) 
  
を2進数に換えよう。
問2 0.4(10)
  を2進数に換えよう。 全て符号なし(正の数)です。
問1 この数は 百万です。
問2 困(こま)ったことに今度はピッタシと終わらない。
どこまでも続いて終わらないので、てきとうなところで終わってください。
現在では、ファイルサイズが何キロバイト、メモリー容量が何メガバイト、何ギガバイトのハードディスクなどと云います。 単純には、バイトマシンが、途方もなく多くつながっていると云うことです。

次に なぜ「約=およそ」がつく?


 1キロバイトは
 1KB = 1000 バイト(B) です。
   (一休室にて説明しています) さらに 
 1メガバイト 1MB=約1000KB
 1ギガバイト  1GB=約1000MB
 1テラバイト 1TB=約1000GB
 ‥‥ です。