gorogoronyan FC2

2進数と16進数

10進数と 2進数

私たちが普段、数字を数えるとき、0から9までの10種類の数字を使います。 0,1,2,3...と数え、9まで数えたら次は 10 と桁が 1つ増える数え方をします。 これを 10進法と言います。

コンピュータやプログラミングやネット技術では、 10進法以外に 2進法もよく使います。 2進法では 0 と 1 の2種類の数字だけを使います。数えるときも 0,1 と数えて次は桁が上がり 10 (「じゅう」ではなく「イチ・ゼロ」) になります。同じようにして、11の次は 100、111の次は 1000 になります。

 10進数      2進数
   0             0
   1             1
   2            10
   3            11
   4           100
   5           101
   6           110
   7           111
   8          1000
   9          1001
  10          1010
   ....        ...

コンピュータの内部はオン・オフのスイッチの集合体で、 オフ=0、オン=1 の組み合わせで数値を扱うので、 2進法が便利なことが多いのです。

ビット数と表せる数値の範囲

2進数の桁数がビット数と呼ばれます。 ビット数の大きさによって表現できる値の範囲が決まります。

◎ビット数と表せる値の範囲

・2進数で n桁の数字があると、0 から (2のn乗 - 1) の値まで、(2のn乗)通りの
 値が表せます。

  例えば 8bit だと 0000 0000 から 1111 1111 まで。
  0  から 255まで、2の8乗 = 256通りの値が表せます。
  ビット数        値の範囲                10進数 
     n              省略              0 から (2のn乗 - 1)まで
     1       0 から         1 まで    0 から   1 まで
     2       0 から        11 まで    0 から   3 まで
     3       0 から       111 まで    0 から   7 まで
     4       0 から      1111 まで    0 から  15 まで
     5       0 から    1 1111 まで    0 から  31 まで
     6       0 から   11 1111 まで    0 から  63 まで
     7       0 から  111 1111 まで    0 から 127 まで
     8       0 から 1111 1111 まで    0 から 255 まで
    ...      ...                      ...
    16             省略               0 から        65,535 まで, 約6万5千,  約65k
    24             省略               0 から    16,777,215 まで, 約1,677万, 約16M
    32             省略               0 から 4,294,967,295 まで, 約40億強,  約4G

16進数

コンピュータやネット技術の分野では 2進数とともに 16進数もよく使われます。 16進数では 16種類の文字を使って数字を表します。 0から9まででは文字が足りないので、A,B,C,D,E,F も数字の代わりに使います。 0,1,2, ...9,A,B,C ... と数え, F の次は桁が繰り上がり、10 (「じゅう」ではなく「イチ・ゼロ」) になります。

   10進数   16進数    2進数  
     0          0         0  
     1          1         1  
     2          2        10  
  ....        ...       ...  
     9          9      1001  
    10          A      1010  
    11          B      1011  
    12          C      1100  
    13          D      1101  
    14          E      1110  
    15          F      1111  
    16         10    1 0000  

     10進数     16進数                  2進数   ビット数(2進数の桁数)
        255         FF              1111 1111     8bit  
        256        100            1 0000 0000
        ...        ...                    ...
      4,095        FFF         1111 1111 1111    12bit
      4,096       1000       1 0000 0000 0000
        ...        ...                    ...
     65,535       FFFF    1111 1111 1111 1111    16bit  
     65,536     1 FFFF  1 0000 0000 0000 0000
        ...        ...                    ...

     10進数                 16進数    ビット数  バイト数 (8bit=1byte)
        255                     FF      8bit       1byte 
      4,095                    FFF     12bit
     65,535                   FFFF     16bit       2byte
  約1,677万                FF FFFF     24bit       3byte
     約43億              FFFF FFFF     32bit       4byte
    約281兆         FFFF FFFF FFFF     48bit       6byte
  約1,844京    FFFF FFFF FFFF FFFF     64bit       8byte

2進数では 0 と 1 しか数字がなく、 桁数もすぐに大きくなり読みづらいので、 16進数で表示して読みやすくします。

16進数の表記は HTML の色指定でも出てきます。

 #ff0000   赤色
 #00ff00   緑色
 #0000ff   青色

 CSS 色の指定

2の乗数いろいろ


・2の10乗, 20乗、30乗といった値は、PC のメモリ容量やフラッシュ
 ストレージの容量を表すときにもよく出てきます。

  2 の 10乗  = 1024 = 約1000              (k, キロ)
  2 の 20乗  = 1024×1024 = 100万強       (M, メガ) 
  2 の 30乗  = 1024×1024×1024 = 10億強  (G, ギガ)
  2 の 40乗  = 1024 の 4乗 = 1兆強        (T, テラ)

  1k = 1,000換算ではなく、1k = 1,024換算を使う。
  HDD はちょっと複雑な話がある・・・省略。

● 24bit

  2 の 24乗 = (2 の 20乗) × (2 の 4乗) = 100万 × 16 = 約1,600万強
  2^24 = 16,777,216, 約1,677万

  コンピュータの画像やディスプレイで 24ビットフルカラーと
 言った言葉もよく出てきます。

  RGB (赤,緑,青) をそれぞれ 8bit階調 (256階調) で表します。
  8bit+ 8bit+ 8bit = 24bitカラー
  256 × 256 × 256  = 約1,677万色の色数

  24bitカラーは HTML の色指定 (例:#ffcc00など) でも出てきます。
  CSS 色の指定

● 32bit

  2 の 32乗  = (2 の 30乗) × (2 の 2乗) = 10億強 ×4 = 40億強

  インターネットの IPv4アドレスでも出てきます。
  IPアドレスの範囲の指定方法


関連

inserted by FC2 system