今回はプログラミングに欠かせない基礎知識としてコンピュータのデータ単位について解説します。
ゲームやWindows OSで32bitとか64bitとかたまに聞きますよね。このbit(ビット)ついての深堀り。また、その上のデータ単位byte(バイト)の知識を一緒に深めていきたいと思います。
結論を先に言いますと以下のようなデータ単位になります。
- 「bit(ビット)」…コンピュータで扱う最小単位。0と1の2進数で表される。略してb
- 「byte(バイト)」…bitを8つにまとめたデータ単位。「1byte=8bit」 略してB
bitとbyteについての基礎知識を網羅する記事にしました。それではどうぞ。
photo by Barney Livingston
bit (ビット)
photo by sylaf
bitはコンピュータで扱うデータの最小単位になります。
1と0で表すデータで「画像・文字・音声」「動画」「ソフトウェア」等、パソコン上の全てのデータは元を辿ると1と0だけの数字なのです。
コンピュータは1のtrue (真/ON) と、0のfalse (偽/OFF) という2進法で計算しているのですが、この1または0と返す一つの動作を1bitと表します。データの記憶領域をこう呼んだりもします。
わかりやすく1がON、2がOFFと書きましたが、もう少し砕いて解説すると電圧の高低でHighレベル (高) なら1、Lowレベル (低) 0 を返しています。それが1ビットの流れです。

つまり1つのbitは1か0のどちらかを選択出来ます。
これが2bit (1~2列) 、3bit (1~3列) 、4bit (1~4列)・・・ とだんたんデータ単位が増えていくと、組み合わせの幅が広がっていきます。
1bitなら「1、0」の2通りですが、2bitなら「10、01、00、11」の4通り。
3bitなら「100、101、110、111、000、001、010、011」になり、4bit5bitあたりからパターンが膨大になり1つずつ把握するのがかなりの手間になってきます。
ではこのbit数によるパターンをどうやって求めるかというと累乗で求めます。4bitの場合は2の4乗で16通りです。2の4乗というのは2を4回掛けるという意味です。(2x2x2x2=16)
なので4bitだと16通りの表現が可能ということになるわけです。
▼bit数によってどの位のパターンの処理が出来るのか一覧にしてみました。
1bit | 2通り | 2の1乗 |
2bit | 4通り | 2の2乗 |
3bit | 8通り | 2の3乗 |
4bit | 16通り | 2の4乗 |
8bit | 256通り | 2の8乗 |
16bit | 65536通り | 2の16乗 |
24bit | 16777216通り | 2の24乗 |
32bit | 4294967295通り | 2の32乗 |
64bit | 18446744073709551615通り | 2の64乗 |
ちなみに歴代のゲーム機のbit数はこのようになります。
- 「ファミコン」8bit
- 「スーパーファミコン」16bit
- 「プレステ2」124bit
- 「プレステ3」64bit
- 「プレステ4」64bit
なぜ、プレステ3からbit数が下がっているのでしょうか?
16bit以上は数えきれない位のパターン処理が可能なので、多ければそれで良いという訳でもないようですね。
bit数のデータ容量はあくまでもインフラ (ここでは道路としておきましょう) 。なので、ある程度まで大きくなったインフラではbit数よりその道を通るデータ (車) の量・質・種類の方が重要になってくるのです。
bitといえば英単語としてのbitです。bitはごくわずか・ほんの少しというようなニュアンスで使われています。
英単語としての意味も多少含まれているかもしれませんが、binary digit (2進数) を略したのがbitの由来だと言われています。
「2進数とは?」10進数や16進数への変換方法まで解説する関連する記事があります。合わせてご覧ください。
byte (バイト)
続いてbyteというデータ単位についての解説です。
こちらはbitの1つ上の単位で256通りもの表現をすることが可能です。256通りって上の表にありましたね。
そうです、byteとは8bitのことを指します。「1byte=8bit」
8つのbitを集めて1byteという大きさのデータ単位です。1bitという単位はデータとして扱うのには小さすぎるので1byteとしてまとめているわけです。
基本パソコンで扱われているデータはbyteかそれ以上の単位です。試しにパソコンのフォルダ内にある写真データを覗くとKBで表されているのがわかります。
bitはかなり小さな単位ですが、それを8つ集めたbyteでもデータとしてはまだまだ小さいというわけですね。
ちなみに余談ですが、byte=B。bit=bと略されることもあります。
「なぜ、8bit?」 1バイト言語・2バイト言語
そこでなぜ「1byte = 8bit」 なのかと疑問が出てきますよね。
コンピュータの発祥は米国なので、当然ですが基準はアルファベットになります。 そして半角英数の1文字分を表現する時に必要なデータ量が8bitになるわけです。
試しにパソコンでメモ帳を作って「a」とだけ書き込み保存します。そのメモ帳のプロパティを見るとサイズの所に「1バイト」と表示されています。

この8bitは1960年代にIBM社が発売したパソコンが始まりと言われていますが、それが引き継がれていって今に至るといいます。昔は今のようにお決まりの8bitではなくて5bitや7bitとかも使われていたのだとか。
そして日本語は1文字2byteで表現できます。例外はあるようですが、基本は全角文字の1文字あたりのデータ量は2byteなのです。
先ほどのアルファベットを保存したメモ帳のように「あ」と1文字だけ入力し保存してプロパティを見ると「2バイト」と表示されています。
このように1byteで表現できる自然言語を「1バイト言語」、2byteで表現できる自然言語を「2バイト言語」とコンピュータの世界ではそう呼んでいます。
1バイト言語 / シングルバイト文化圏
英語、フランス語、ドイツ語
2バイト言語 / ダブルバイト文化圏
日本語、中国語、韓国語
「その他」コンピュータで扱う単位
bit、byteがどういったものなのかを覚えたついでにbyteよりも大きな単位も見ていきましょう。
各単位ともに1024倍で次の単位になります。なぜ1024という数値になるのかというとコンピュータは2進数なので2の10乗で1024倍なのです。
また、1024倍にしたもう一つの理由がコンピュータ以外の世界では一般的に10進数が使われています。そして2進数では2の9乗の数値が512で、次の2の10乗がちょうどきりが良く1024となり10進数で見たきりがいい数1000と近い数値のためにそうなったとも言われていますし、HDDの中身の計算は2進数、10進数両方の側面があるからというのもあります。
なおKBは1024ですが、kを小文字でkB = 1000 と区別する事もあります。
単位一覧
- 「KB (キロバイト)」… 1KB = 1024byte
- 「MB (メガバイト)」… 1MB = 1024KB
- 「GB (ギガバイト)」… 1GB = 1024MB
- 「TB (テラバイト)」… 1TB = 1024GB
GB、TB以上の単位は現状で現実的に使う機会はないと思います。
通信速度で使われている単位
一方通信速度で扱われているデータの単位では「Mbps」「Gbps」などです。モバイル通信速度の話題になるとよく使われている単位ですね。
1bps = 1秒間に何bitのデータ量を転送できるか
これはネット通信で送る事ができるデータ量を表す単位で、最小の単位だと「bps」で「bits per second = 1秒ごとのbit数」 という意味になります。なので「1bps / 読み…ビーピーエス」だと1秒間に1bitのデータを伝達できるというです。
「Kbps」だと「Kiro bite per second」の略で読みは「キロ・ビーピーエス」です。こちらは1秒間に何キロbit転送できるかということになります。
こちらも2進法による計算方法と10進法による計算方法と二通りありますが2進法で見てみましょう。
「転送速度」データ単位
- 「Kbps (キロ・ビーピーエス)」… 1Kbps = 1024bps
- 「Mbps (メガ・ビーピーエス)」… 1Mbps = 1024Kbps
- 「Gbps (ギガ・ビーピーエス)」… 1Gbps = 1024Mbps
- 「Tbps (テラ・ビーピーエス)」… 1Tbps = 1024Gbps
まとめ
今回はプログラミングに欠かせない基礎知識のデータ単位「bit(ビット)」と「byte(バイト)」についてわかりやすく解説しました。プログラミングにはbit単位で操作するビット演算子なるものがあります。
内容をまとめると以下のようになります。
- 「bit(ビット)」… コンピュータで扱う最小単位。0(OFF)と1(ON)で表される。
- 「byte(バイト)」… bitを8つにまとめたもの。【8bit=1byte】
「プログラミング初心者」に関連する記事が他にもあります。合わせてご覧ください。
コメント