みんな大好き単位の時間だよ!
コンピュータが表現する最小の単位がビット(bit)です。
8ビットをひとまとめにしたバイト(Byte)を主に使います。
ビットの表し方は「500b」で末尾にbが書いてある場合はビット
「500B」と末尾に大文字のBが書いてある場合はバイトを示しています。
1バイトであらわせる数の範囲
1ビットは
1 or 0
です。
では2ビットは
00
01
10
11
4通りに増えますね。
2ビットだと2進数2桁になるので、2²個の数を表現できます。
3ビットだと2³個で8通り。4ビットだと2⁴個で16通り。
8ビットだと256通りとなります。
負の数を入れると表現できる数値は正と負に2等分されます。
符号ありの場合はあらわせる数は下記のようになります。
00000000 ⇨ 00000001 ~ 0111111
1 127
00000000 ⇨ 11111111 ~ 10000001 ~ 10000000
-1 -127 -128
様々な補助単位
m(メートル)という長さの単位がありますが、目的地まで40,000mだったときに40,000mとは言わないで
40kmというと思います。
この時の「k」を補助単位と呼びます。
そこでバイトが1,000,000,000バイトですと呼んだりするのはないと思うので、分かりやすく
補助単位を使います。下記がその補助単位の一覧です。
記憶容量など大きい数値を表す補助単位
補助単位 | 意味 | 説明 |
---|---|---|
キロ(k) | 10³ | 基本単位 * 1,000倍 |
メガ(M) | 10⁶ | 基本単位 * 1,000,000倍 |
ギガ(G) | 10⁹ | 基本単位 * 1,000,000,000倍 |
テラ(T) | 10¹² | 基本単位 * 1,000,000,000,000倍 |
処理速度など小さい数値を表す補助単位
補助単位 | 意味 | 説明 |
---|---|---|
ミリ(m) | 10⁻³ | 基本単位 / 1,000倍 |
マイクロ(μ) | 10⁻⁶ | 基本単位 / 1,000,000倍 |
ナノ(n) | 10⁻⁹ | 基本単位 / 1,000,000,000倍 |
ピコ(p) | 10⁻¹² | 基本単位 / 1,000,000,000,000倍 |
※追加説明
会社の方から1KBなら1024Bじゃない?と説明してもらって、検索すると「エンジニアなら2進数で考えて当たり前でしょう!」という記事がありました。
ええ。ええ。
1KBは1000なの?1024なの?と検索するとたくさんの記事の結果が出てきます。
なんと10進法と2進法をめぐる「メモリカード容量の不当表示」訴訟なんてのも起きていたみたいですね。
10進法と2進法をめぐる「メモリカード容量の不当表示」集団訴訟
補助単位 | 10進 | 2進 |
---|---|---|
キロ(kB) | 1,000byte(10³) | 1024byte(2¹⁰) |
メガ(M) | 1,000,000byte(10⁶) | 1,048,576byte(2²⁰) |
ギガ(G) | 1,000,000,000byte(10⁹) | 1,073,741,824(2³⁰) |
テラ(T) | 1,000,000,000,000byte(10¹²) | 1,099,511,627,776(2⁴⁰) |
1024byte = 1KB ◯
1024byte = 1kB ✖️
KBだとOKでkbだとダメなんですね。
国際単位系(SI)で規定されている「SI接頭辞」と呼ばれるもので規定されており
1000倍を示すものは「k」で表記することが決まっているみたいです。
キロバイト
紛らわしすぎてkibibyteという単位があるそうです。
キビバイト
単位の話が結構、奥が深いようなのでここまでにしようと思います。
まとめ
暗記ぱん食べたい。
2進数で全て考えられるようになってエンジニアを名乗れるみたいなので頑張ります。