【IT】ビットとは?わかりやすく解説

what is bit eyecatch image

基本情報技術者試験の最初の勉強でビットの説明がでてきました。ChatGPTさんに尋ねてみると以下のような回答が返ってきました。

F13

ビットとは何ですか?

Chat GPT

ビット(bit)は、コンピューターが扱う情報の最小単位です。binary digit(バイナリ・デジット)の略で、0または1の2つの状態を持ちます。 データの基本単位ですべてのデジタルデータ(文字、画像、音声、動画など)は、ビットの組み合わせで表されます。

目次

1ビットは01が入る箱

1ビットという箱の中には0か1の値が入ります。ただ、1ビットだけでは01しか表すことができないので、スイッチのOnOff程度しか表すことができません。

bit in box image
どうやって文字や画像を表すの?

このビットの箱をいくつも用意することで、文字や画像、音声、動画などのデジタルデータを表します。

nビットで表せるもの

さて、1ビットだと01の2通りしか表せません。これが2ビットだとどうなるでしょう?正解は1ビットで2通りなので、2
ビットだと2通り×2通りで4通りの数を表すことができます。

1bit image
2bit image

同じように3ビットの時を考えると、2(通り)×2(通り)×2(通り)=8通りを表すことができます。ここまでをまとめると、n ビットの時、2×2×…と2n回でてくることになります。
なので次のことがいえます。

nビットの時、表すことができるものは2

4ビットで表せるもの(16進数の数値)

普段、私たちの生活で使っているのは10進数です(09までの10個の数値で1桁目を表し、9の次が繰り上がる)。16進数というのは9の次が10ではなく、Aになります。Aの次はBCD…と続き、Fまでが1桁目になります。Fの次の数が10になります。09の10個の数字とAFまでの6個のアルファベットの合計16個の文字を使って1桁目を表すので、16進数と呼ばれます。

nビットの時に表すことができるものは2nに当てはめると 2=16となり16進数は4ビットで表すことができます。

16進数は何に使うの?

16進数はITの世界では色々なものに使われています。下記に例を示します。

インターネット

インターネットで使われているIPアドレスではIPv4(Internet Protcol version 4)では32ビットで表されていますが、あまりにもわかりにくいので、8ビットごとに「.(ドット)」で区切って025510進数の4つの組み合わせで表されます(例.192.168.0.1)。

32ビットでIPアドレスを表すので、IPアドレスは232個(約43億個)存在できる計算になります。ただ、現在では約43
億個のIPアドレスでも枯渇しており、IPv6(Internet Protocol version 6)と次世代のIPアドレスへ移行して始めています。

IPv6では128ビットで表すことになっており、割り当てられるIPアドレスは2128=232+32+32+32なので43億×43億×43億×43億=約340澗(かん)とほぼ無限に近いと考えられています。

IPv6

ここまで話してようやく16進数の話になりますが、IPv6ではIPv4で0255の10進数で表していた代わりに、16進数を用います。128ビットを16ビットごとに「(コロン)」で区切ります。16進数は上述したように0fで示すので各コロンの間の文字は0ffffのいずれかになります。(例.2001:0db8:0000:0000:3456:0000:0000:0000

IPv6アドレスを128ビット(2進数)へ

上記2進数の128ビットで計算するのは、ちょっと面倒なのでChatGPTに聞いてみましょう。

F13

IPv6のアドレス”2001:0db8:0000:0000:3456:0000:0000:0000”
を2進数で表すとどうなりますか?

Chat GPT

IPv6アドレス 2001:0db8:0000:0000:3456:0000:0000:0000
を2進数で表すと、次のようになります。

STEP
16進数⇒2進数へ変換

16ビット(4桁の16進数)の4桁の塊を2進数に変換していきます。

各16ビット(4桁の16進数)を2進数に変換すると:

スクロールできます
16進数2進数
20010010000000000001
0db80000110110111000
00000000000000000000
00000000000000000000
34560011010001010110
00000000000000000000
00000000000000000000
00000000000000000000
STEP
2進数表記をまとめる

求めた2進数表記をまとめると…

0010 0000 0000 0001 0000 1101 1011 1000 0000 0000 0000 0000 0000 0000 0000 0000
0011 0100 0101 0110 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000

またはスペースを省略すると…
00100000000000010000110110111000000000000000000000000000000000000011010001010110000000000000000000000000000000000000000000000000


とIPv6アドレスを128ビットで表すことができました。

10進数を2進数へ変換、16進数を2進数へ変換する方法は以下記事をご参照ください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次