[14-3] コンピュータ上の単位について(ビット、バイト、メガ、ギガ)

「単位」については、文字コード関連で余談として書きましたが「別記事にしたほうが良い」とご指摘をいただき、確かに!そのほうが検索しやすいので、今回の記事1個にまとめます。

この記事は、実際は2013年02月にアップしたものですが、
ページ下部の時系列のインデックスから外れてしまうので、投稿日を2011年5月に変更しています。

コンピュータは2進法の世界

コンピュータは2進法の世界です。2進法とは「0と1しか無い」世界。
「0」か「1」だけで信号を送っています。
(ちなみに、「2進法の数値=2進数」。「2進法」と「2進数」の違いはコレ)
この0や1も、ヒト用の数字。コンピュータにとっては「off」「on」なんです。

電圧の強弱で、オフで0、オンで1って信号を送ってるそうです。ものっすごい速度で。
昔々、この方式が最もミスが出にくくて良かったので、こうなったんだそうです。
コンピュータにとって基本である「文字」を表現するのも、この0か1(off か on)の組み合わせで信号を送っているんですって。

2進法と10進法の違い
10進法だと0から始まって9まで1桁(ケタ)、次は「10」で2桁になりますね。
2進法だと、0から始まって次は1なのは同じですが、その次はいきなり「10」。
0と1だけの世界なので「2」という概念がありません
1+1=10。2桁目に上がっていきます
その次は11、次は100、101、110、111、1000、1001…と続きます。がんがんケタが上がります。

他にコンピュータでよく使うのに、16進法もあります。こっちはなかなかケタが上がらない。なので、少ない桁数でたくさんの数を表せて便利。 ウェブの色指定で使います。→ [14-4] 色指定について(16進数、色名、10進数、パーセント)

最小単位は1ビット、それを複数にした次の単位は1バイト。

この「0」か「1」の最小の信号1個を 1ビット(1bit)と呼びます。
「bit」は「binary digit(バイナリ ディジット)」の略。
binary は2進数のこと。digit は1桁のこと。まんま「2進数の1桁」ってことで、わかりやすい。
ちなみに、この digit から digital(デジタル)という言葉が生まれたそうです。

1bitだと、2進数の1桁だけ。0か1の2通りしか表現できません。
で、bitを複数にして(桁数を増やして)1単位にしたのが「バイト(byte)」です。

1byte=8bit(8桁)だと思ってください。ただし1byte=7bit(7桁)の場合もあります。
「(ちょっとメモ)文字コード、文字集合、エンコードについて(1)」で 7bit の場合について少し触れています。

ちなみに、8ビット限定で1単位にしたい場合のために「octet(オクテット)」という単位もあるそうです。1octet=8bit です。「octo」はラテン語で「8」。

音階で1オクターブ(octave)とか、蛸はオクトパス(octopus)と言いますよね。8本足だから。
「October」は、古代ローマの8番目の月で、現在の10月だって。

とにかく、8bitだと8桁(7bitなら7桁)で、信号を伝えます。
7bit(7桁)だと0から最高1111111まで、128通りもあるんです。
8bit(8桁)だと256通り。けっこうありますね。

分かりやすいように図にしてみました。
コンピュータで、128、256、512という数字は良くでてきますが、2進法の数字だったんですね。

byteの次の単位は…メートル法に準じてるけど、やっぱ2進法

1bitが最小単位。1bitが8桁ないし7桁集まった単位が1byte。ここまで2進数ですね。
このあとですよ。
1byteが1,000個集まって1000byteだと、1Kirobyte ( KB (キロバイト) )
次は1,000KBで1MB(メガバイト)…こうやって1,000個で、次の単位に上がる。。。

これメートル法じゃね? 2進法どうなった?! って思いますよね。
(10進数の3桁(10の3乗=1,000=ゼロ3つ)ずつアップするのがメートル法)

実際の値はちゃんと2進法のままなんですってよ。
でも、可読性が悪い(111000010000010…とか、230とか書かれてもスグわからん)から、
ヒトが分かりやすいように、メートル法に準じて表示しているだけだって。
(ちなみにメートル法は10進法の世界。10進法は人の手の指が基本10本だから生まれたそうです)

本当は2進法での数値なんだけど、10進数で表示している。
だから当然、表示された数字と本当の値との間に差があるんです。

コンピュータ上で使われる単位と、10進法、2進法での数値を表にしてみました。

コンピュータ上の単位 10進法 数値の日本語読み (US英語読み) 2進法
KB(キロバイト/kilobyte) 103 (thousand) 210
MB(メガバイト/megabyte) 106 百万(million) 220
GB(ギガバイト/gigabyte) 109 十億(billion) 230
TB(テラバイト/terabyte) 1012 一兆(trillion) 240
PB(ペタバイト/petabyte) 1015 千兆(quadrillion) 250
EB(エクサバイト/exabyte) 1018 百京 (けい)(quintillion) 260
ZB(ゼタバイト/zettabyte) 1021 十垓 (がい)(sextillion) 270
YB(ヨタバイト/yottabyte) 1024 (じょ)(septillion) 280

最初の、1,000(103)バイト=1キロバイトでは、
2進法の数値は、210 が当てはめられてます。
2の10乗=1024。本当の値は1000バイトじゃなくて、1024バイト
24バイト多いけど、このくらいなら「まいっか。だいたい1000だから」って思えるよね。

でも、例えばTB(テラバイト)を見ると、
10進法だと1012で、1TB=1,000,000,000,000(1兆)バイト ってことになります。
2進法だと 240 は、 1,099,511,627,776 バイト(1兆とんで995億1162万7776バイト)。
「え"ーっ? …100ギガ近く違うぢゃん! ぼったくり?!」って思いますよね。

でも大丈夫。
表現上の問題で、データ量的に違いがあるわけじゃない。中身は一緒。
10進法と2進法との数字の差は当然あるけど、 ヒトに分かりやすい数値にしてるだけ、だそうです。

外付けHDを買って、パッケージのオモテ面に「1テラ」って書いてあるのに、
裏面みると「1,099,511,627,776byte」とか書いてあって「なに?!」って思ったこともあるけど、
これは丁寧に、2進数表記をしてくれてるだけ、でした。

この記事で累乗計算するのに、下記のサイトを使いました。
※CASIO の "高精度計算サイト" 内の、「累乗」(作者:Enpitsu さん)

次回予告

次回はウェブでの色指定についてまとめます。
よく目にする「#F5F5F5」のような16進数の指定のしかたや、 色指定でのアクセシビリティの方法について、メモっときます。

関連記事
この記事をはてなブックマークに追加

やる気を保つためにランキングに参加しています。
応援してくださると すっごいやる気を出します! (笑)

初心者にも使いやすい(と思う)レンタルサーバー

最近よく「レンタルサーバーはどこがいい?」とご質問が来ます。
自分でも使っていてオススメなのはミニバード。管理画面がわかりやすくていい感じす。
仕事で使ってるロリポップもわかりやすい管理画面で、初めてでもすんなり使えると思います。
両方とも、なんといっても料金が安いです。初めてだとなるべく安いほうがイイですからね。

それよりちょっと料金は高いけど、高スペックでコスパが良く、信頼性も高いサーバといえば、やはりさくらのレンタルサーバと、XSERVER(エックスサーバー)だと思う。この2つは老舗でユーザーも多いので、質問する場がたくさんあり、初心者の方でもイケるだろうと思います。

レンタルサーバーは、たくさんあり過ぎて迷いますよね。近いうちに、初心者にも良さげなサーバーについて記事にまとめます。*記事をアップしたらココにもリンクを貼ります。

スポンサーリンク

コメントの投稿

スポンサーリンク
最新記事
Category
オススメの本
Links
Calendar
07 | 2017/08 | 09
- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 - -
Archive
RSS Link
Profile

yuki★hata

Author : yuki★hata
せめて月1回の更新をめざします~。

メールフォームはこちら

スポンサーリンク
スポンサーリンク
Copyright © ほんっとにはじめてのHTML5とCSS3 All Rights Reserved.