No study nor picture, no life.

一日「一学習 or 一写真」

学べる!2進法と3進法の魅力:桁の重みと変換方法 #学習|「情報」の基礎の基礎を学ぶ。

2進法、3進法・8進法;n進の学習(すうがく篇)
 
2 進法; 0, 1,
の2とおり。
3進法;0, 1, 2,
の3とおり。
--
2進法では、順に
0, 1, 10, 11,100, 101, 110, 111,
とつづく。
-
3進法では、順に
0, 1, 2, 10, 11, 12, 20, 21, 22, 100, 101,
のようにつづく。
 
変換は;
2 進法;10101
=>だと
10進法では
1*1+0*2+1*4+0*8+1*16=21
のことだった。
 
3進法; 222
を10進法にすると、
2*1+2*3+2*(3*3) = 26
だった。
---
8進法の「数字」は、8つで、
0, 1, 2, 3, 4, 5, 6, 7,
まで。
16進法は数字の後alphabetを6つ加え、
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C D E, F,
まで使う。
-
2 -->> 8 進へ;
2; 101001010110111001 があった。
8=(2の3乗)なので、3つずつ。
101 001 010 110 111 001
5 1 2 6 7 1
512671 が8進表現。
逆;
5(=8進の); 2進は 1, 10, 11, 100, 101=5番目でこれに相当。
1 = 1
2 = 1, 10
6 = 1, 10, 11, 100, 101, 110
7 = 1, 10, 11, 100, 101, 110, 111
1 = 1
-->> 3桁にして並べると2進法。
------------
同数を16 進では、4(=2の4乗) 4つずつ区切って変換。
10 1001 0101 1011 1001 なので
2 9 5 B 9
「たとえば、最後は 1, 10, 11, 100, 101, 110, 111, 1000, 1001 ==> 9 番目」
-----------
n 進を表す決まりはいくつかあるけど、吾輩は、以下のようにすることに。
2 進;「b」inary
8 進;「o」octa
10 進;「d」decimal
16 進;「h」hexadecimal
--
10進の109 なら;
2; 1101101b
8; 155o
10; 109d
16; 6Dh
----
小数点以下;;2進の小数点。
 
10進-->>2進へ。
 
たとえば、10進で以下;
「125.225」
だとすると、
「125」部は、
125/2 = 62あまり1,
62/2 =31あまり0,
31/2 =15あまり1,
15/2 =7あまり1,
7/2 =3あまり1,
3/2 =1あまり1,
1/2 =0あまり1,

となり整数部は、「1111101」:2進

「0.225」部分は、
0.225*2 =0.450,
0.45*2 = 0.90,
0.9*2 = 1.8,
0.8*2 =1.6,
0.6*2 = 1.2,
0.2*2 = 0.4,
0.4*2= 0.8,
0.8*2 =1.6,
循環小数になった。
上記計算の「.」の前を並べて、「1111101」の前に置く。
1111101.0011,1001,1001,1001,---と続く。

--------------
逆「2進ーー>>10進」は簡単
「0.00111」2進
なら、
0*0.5 + 0*0.25 + 1*0.125 + 1*(1/16) + 1*(1/32) =
「0.21875」;10進
 
-----
要するに「桁数計算」, n(進)の桁乗ということだ。
------
--
「情報」へのステップ;
-----
1 bit; 0, 1,
2 bit; 00, 01, 10, 11,
3 bit; 000, 001, 010, 011, 100, 101, 110, 111,
 
1 byte; 8 bit, 2の8乗 = 256
 
10進; 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
2進; 0, 1, 10, 11, 100, 101, 110, 111, 1000, 1001, 1010
 
16進; 0, ----, 9, A, B, C, D, E, F, 10,
 
位ー>「桁の重み」
2進; 1001.001
2進・桁の重み; 2の3乗, 2の2乗,2の1乗, 2の0乗 . 2の(-1)乗, 2の(-2)乗, 2の(-3)乗
 
10進へ;;
1*8 + 0*4 + 0*2 + 1*1 + 0 + 0 + (1/8) = 9.125
 
 
-----
7 / 32 = 0.21875
だから、
2*(1/2) + 1*(1/4) +8*(1/8) + 7*(1/16) + 5*(1/32)
= 2.84375
 
-----
---