今回はコンピュータのデータ単位についてです。ゲームハードやWindows OSで32bitとか64bitとかたまに聞きますよね。その事についてまとめてみました。
。
SPONSORED LINK
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」になり、4bitあたりからパターンを一つずつ把握するのも面倒になってきます。
ではこの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乗 |
ちなみにファミコンは8bit、スーパーファミコンは16bit、プレステ2は124bit、そしてプレステ3になって64bit、プレステ4も64bitです。そしてなぜ、プレステ3からbit数が下がっているのでしょう?
OSやゲームのbit数に関しては筆者自身だいたいの把握になりますが、16bit以上は数えきれない位のパターン処理が可能なので多ければ良いという訳でもないようです。
bit数のデータ容量はあくまでもインフラ (ここでは道路としておきましょう) なので、ある程度まで大きくなったインフラではその道を通るデータ (車) の量・質・種類の方が重要になってくるのです。多分。
bitの由来
bitといえば英単語としてのbitです。bitはごくわずか・ほんの少しというようなニュアンスで使われています。
英単語としての意味も多少含まれているかもしれませんが、binary digit (2進数) を略したのがbitの由来だと言われています。
byte (バイト)
byteというデータ単位があります。こちらはbitの一つ上の単位で256通りもの表現をする事が出来可能です。
ん?256通りって上の表にありましたね。
そうですbyteとは8bitの事を指します。8つのbitを集めて1byteという大きさのデータ単位です。1bitという単位はデータとして扱うのには小さすぎるので1byteとしてまとめているわけです。
基本パソコンで扱われているデータはbyteかそれ以上の単位です。試しにフォルダやファイルデータ
byteはBと略される事もあるらしいですが、bitの略がbなので書くのは簡単ですしbyteでいいと思います。
「なぜ、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単位で操作するというビット演算子なるものがあったからです。次回はJavaの演算子について記事にしたいと思います。