>2進数を10進数に直す、
>またその反対も全然やり方が分かりません
2進数の理解をする前に、10進数のおさらい。
10進数とは
0,1,2,3,4,5,6,7,8,9の10種類の数字を1桁で表現出来る表記方法です。
これと同様に
2進数とは
0,1の2種類の数字を1桁で表現出来る表記方法です。
では、10進数の123を例に考えます。
これは、
100と20と3の集まった値。
難しく書くと
10の0乗が3個で__1X3で__3
10の1乗が2個で_10X2で_20
10の2乗が1個で100X1で100
これを合計した値です。
では2進数だとどうでしょうか。
123は2進数ではあり得ませんが10進数の123を2進数に変換するためには、
10の0乗が3個で__1X3で__3
10の1乗が2個で_10X2で_20
10の2乗が1個で100X1で100
と同じように、
2の0乗が最下位の桁、
2の1乗が最下位から2番目の桁
2の2乗が最下位から3番目の桁
という風になります。
10進数を2進数に変換するためには、2で割っていき、商が0になるまで計算し、最後の式のあまりから遡るように記述します。
123÷2=61・・・1
_61÷2=30・・・1
_30÷2=15・・・0
_15÷2=_7・・・1
__7÷2=_3・・・1
__3÷2=_1・・・1
__1÷2=_0・・・1
10進数の123は2進数では1111011となります。
逆に、この2進数を10進数に変換するには
先の10進数の数字の考え方と同じ事を2進数で行います。
2進数の最下位から計算していくと
2の0乗が1で_1X1=_1
2の1乗が1で_2X1=_2
2の2乗が0で_4X0=_0
2の3乗が1で_8X1=_8
2の4乗が1で16X1=16
2の5乗が1で32X1=32
2の6乗が1で64X1=64
この数字を合計します。
1+2+8+16+32+64
=1+2+(8+32)+(16+64)
=3+40+80
=123
同様に、ちょっと変ですが10進数の123を10進数に変換してみます。
123÷10=12・・・3
_12÷10=_1・・・2
__1÷10=_0・・・1
最後の「あまり」からならべて123d(^-^)
123になりましたよね(^^ゞ
10進数を2進数にするには、2で割っていき商が0になるまで計算し、あまりを遡って書く。
2進数を10進数にするには、最下位から2の0乗、2の1乗、2の2乗を順に掛け算して合計する。
注意しなければならないのは、最下位桁はその進数の数字の0乗の値であると言うこと。
10の0乗でも2の0乗でも1になるので、最下位桁の数字になると言うことです。
例外は10進数を超えた場合ですが、質問にはないので敢えて説明はしないことにします。