見出し画像

ITに出てくるサイズの単位を掘り下げる

たまには専門家風な話を書いてみよう。
あくまで「風」であり、利用者目線の話題なので、気軽に読んでください。
「よく聞くけど、なんだかわかってない」を解決する記事です。

などと、偉そうなことを書いておりますが、調べてたら新たな発見があったので皆さんにもシェアしたいだけなのです。

ITにおいてサイズを表す単位は2種類ある

ビット と バイト ってよく聞くと思います。
どちらもコンピュータのデータサイズを表す単位です。

ビットとバイトの意味

まず、ビットの意味は、0 か1 で表される符号のことです。
0 なら 1ビット、01 なら 2ビット、以降続く・・・

バイトもビットと同じく 0とか1の符号なんだけど、8ビットで1バイトという関係性があります。
おそらく文字データ量を表すのに8ビットで表していたからだと思います。
(ASCIIコードのことです。詳細割愛)

ビット表記の用途

ビットはコンピュータの設計情報(設計としての演算単位)や通信速度を表すときに使います。
通信速度といえばビットです。なんでだろう。。。

うちは Nuro光 を利用していますが、その最大通信速度は 2Gbps です。
これは 1秒あたりの転送サイズが 2 * 10^9 ビット ってことです。
(ひょっとすると間違ってるかもしれないので後述します)

※コンピュータの世界では * は掛け算、^ は 累乗とかべき乗の記号です。10を9回掛けることを意味します。累乗とべき乗は同じではありませんが、この記事内では違いはありません。

バイト表記の用途

大昔のコンピュータは アルファベットの大文字小文字数字やちょっとした記号しか扱えませんでした。
アルファベットの A ならビット表記にすると00100001 となります。0と1を8個組み合わせることで1文字を決定できます。
なので1文字8ビットで考えるより、1文字1バイトで考えるほうがよさげなんじゃないかな。保存といえば可読可能な文字データなので、保存するデータサイズの単位はバイトで表すのだと思います。ちがったらごめん。

ビットとバイトの表記の違い

真剣にまじまじとネットを見てて気づいた。
ビット:b  小文字
バイト:B 大文字

として、表現されているっぽい。

えー!そうなの!昔はバイトとかビットって書いてあったもんな。いつからそうなったんだろう。
なんとなくそういう認識ではいたけど初めて知った。
資料や計測値を見てると、ビットなのかバイトなのかよくわからないときがあります。

10Gbps って書いてあったら、10ギガビットパーセックということで、ビットですね。
1GB って書いてあったら、1ギガバイトです。
おれは自分で資料を作る場合には Bytes もしくは Bits と表記します。
そうしないと、あとで自分がわかんなくなるから。

携帯電話のCMの「ギガ」はどっちなの?

おれの予想では、通信のことなのでバイトだと思います。
が、一応ちゃんと調べてみよう。

これはソフトバンクの追加データ容量の料金表です。
大文字なのでバイトですね。

ファミコンのメガロムの単位はビットだった

ややこしいんだけど、ファミコン時代のカセットROMはビットなんです。
メガロムと言ってましたね。1Mbit の容量です。
だから実際は256kbytes ってことになる。
今はこういう紛らわしいものは駆逐されたと思ってていい・・・はず。

SI接頭語 と 2進接頭辞

いつの間にか、KiB キビバイト 、GiB ギビバイト みたいな表記を見かけるようになりました。恥ずかしながら、おれが気づいたのは3年ぐらい前です。多分、かなり前からあったと思うが知らなかった。

コンピュータの世界では 2のn乗で展開されます。
例えば、2の10乗は 1024 になるのですが、これを 1K(キロ)と表現していました。でも、正確ではありませんね。だって1024と1000は24違うんだから。
キロの場合はまだいいほうで、これが
ギガ 1024 ^ 3 の意味なんだけど、正確な値は 107 * 10^9
テラ 1024 ^ 4 の意味なんだけど、正確な値は 109 * 10^12 となり、
だんだんとずれが大きくなってきます。

見る側は「その数値は、どっちで表現してるの?」という疑問が起きます。
この問題を解消するために、SI接頭語と2進接頭辞が定義されたらしい。
下表はバイトの説明ですが、同じようにビットもあります。
kB のところだけ、なぜか小文字なんです。意味わからんな。

エクサ以降は聞いたこともない

で、世の中ではこれをうまく使い分けているのかというと、よくわかりません。少なくとも、KiB のように表現されているものは間違いないと言えるのですが、KB表記されているものはどっちのつもりで書いてるのかはわかりません。判別のしようがないし。
おそらく元の数字が2のn乗で算出してるのが大半じゃないかな。つまりずれてるってこと。
まぁでも、「ちょっとずれるけどだいたい同じで、ほんとはちょっぴり小さい」と思っておけば実務上の支障はなかったりする。

で、話を戻しますが、うちのNuro光は 2GBps と書きました
これは・・・どっちなんだ? 10^9 なのか、2^30なのか???
わかりませ~ん。
計測機器がどうやって計測してるかなんだろうねぇ。
だいたい2Gbpsだと思っとけばいいんですよ。
どっちみち2Gbpsも出ないし。

試しに計測してみました。
うひょ!なんと1Gbpsもでてた!

2.5Gbit/s の有線LANです

ところで携帯電話の5Gの転送速度は?

規格の理論値は最大20Gbpsだそうです。
周辺環境が整わないと無理な数字です。
仮に受信できたとしても、ファイル保存しようものならスマホは10秒でパンクする。

まとめ:実生活にどう考慮するべきか?

うーん、あんまり気にしなくていい気がしてきた。
ここまで書いたのに意味ないやん!
というのも、今となってはビットとバイトが混在することは少ないから。
データ転送の測定をしてると、混在してるものがちらほらあるけど、実生活では出てこないもんね。

どっちかというと、「ギガが足りなくてさ~」みたいな慣用表現をしないでほしいなと思います。

追記:k の秘密

キロは小文字のk を使わないといけないらしい。
SI(国際単位系)でそう決められてるんだってさ。
なんだそりゃ。

こちらの記事がおもしろいです。ぜひ一読願う。


この記事が気に入ったらサポートをしてみませんか?