K, M, Gは、基本情報技術者試験の参考書で言えば、最初の方のページに載っている知識です。
例えば、24ビットで表せる数は全部でいくつ?と訊かれてすぐに答えられますか?
\( 2^{24} \)ですが、これが16Mだと答えられますか?
この記事を読むと\( 2^{24}\)を見た瞬間に16Mと答えられるようになります。
K, M, Gって分かっていますか?
イト屋です。
基本情報技術者試験の参考書の最初の方に載っています。
K(キロ), M(メガ), G(ギガ)のことについてです。
おそらく誰もが読み飛ばしているところですね。
\( 2^{10}\)が1024で大体\( 10^{3}\)だから\( 2^{10} \)を1Kと呼ぼうということです。
例えば24ビットで表せる数\( 2^{24} \)は16Mとすぐに言えますか?
数学が得意であれば、上記は当たり前と思うかもしれません。当たり前の人は以降読まなくてよいです。こんな詰まらない記事を読むよりもっと貴重なことに時間を使ってください。
しかし、\( 2^{24}=16M \)がすぐに言えない方は、これ以降を読むことによって、\( 2^{10}=1K\)の本当の意味を知ることになります。
\( 2^{10}\)が1Kだと言うことを頭にたたきこむ
1Kは1000ではなく1024
ITにおいては10進数よりも2進数を使います。
コンピュータに親和性が高いのが2進数、人間が慣れ親しんだのが10進数
という事実が初心者を苦しめます。
\(2^{10}\)が1Kというのも初めて見たときはよく分からないかもしれません。
\(2^{10}\)は大体1000だから1Kだというのを式にすると以下のようになります。
$$2^{10}=1024\sim 1000=1K$$
基本情報の教科書にはさらっと書いてありますが、
これ以降のIT人生において、1Kは1000ではなく1024です。
ITを生きると言うのはそういうことなのです。(ちょっと大げさか?)
容量を大きく見せたいときだけ1Kは1000
ITにおいて1Kは1000ではなく1024というのは厳然たる事実です。
ただし、メモリやディスクの容量を指し示すときだけは1Kは1000を使います。
ちょっと大きく見えるから、というメーカの小狡い習性ですので大目に見て上げてください。
切りのいい数字
同僚が、「1000みたいな切りの悪い数字ではなく1024にしよう」という発言をしたことがあって、ぎょっとしたことを覚えています。
その同僚の頭の中では1000は最早切りのいい数字ではなく1024こそが切りのいい数字なのです。
こういう発言ができるようになったら立派なITエンジニアです。(いや違うけど)
最大数や最小数は10進数の切りのいい数字よりも2進数の切りのいい数字を選ぶ方が多いので頭の片隅においておきましょう。
K, M, G, Tの順番を覚える
欧米では\(10^3\)ごとに名称が変わって、日本や中国では\(10^4\)ごとに名称が変わります。
大きい数字を英語にしようとすると考えてしまうという英語あるあるですね。
世界では以下のような呼び方をします。
\(10^3\) | K(キロ) |
\(10^6\) | M(メガ) |
\(10^9\) | G(ギガ) |
\(10^{12}\) | T(テラ) |
\(10^{15}\) | P(ペタ) |
ITにおいては\(2^{10}\)が1Kなのですから上記の表は以下のようになります。
\(2^{10}\) | K(キロ) |
\(2^{20}\) | M(メガ) |
\(2^{30}\) | G(ギガ) |
\(2^{40}\) | T(テラ) |
\(2^{50}\) | P(ペタ) |
K(キロ), M(メガ), G(ギガ)と覚えましょう。
T(テラ)はディスクの容量を示す単位で使われます。
P(ペタ)はたまにビッグデータを表すときに使われたりしますがあまり使いません。
とりあえずはK(キロ), M(メガ), G(ギガ)です。
「ギガが足りない」などという意味不明な発言をしているくらい、G(ギガ)は日常で使う言葉になりつつあるので覚えるのは難しくないと思います。
\( 2^{10}\)とKを対応させる それだけです
さて、\(2^{24}\)は何K?何M?という問に答えましょう。
まず、\(2^{24}\)を\(2^{20}\)x\(2^4\)に分けます。
\(2^{20}\)の部分、10, 20と指を折って数えてみましょう。2個目です。
そして、K, M, Gの順に指を折ります。2個目はM(メガ)です。
なので、\(2^{20}\)はM(メガ)になります。
そして、\(2^4=16\)を計算すると、\(2^{24}\)が16Mであることが暗算で分かります。
分かりますか?
例えば、\(2^{32}\)は?
\(2^{30}\)x\(2^2\)に分けて、\(2^{30}\)がG(ギガ)、\(2^2\)が4なので4Gです。
※10年以上組み込みエンジニアをやっていてこの方法を知らない人がいました。教えてあげるととても喜んでいたので、あまり知られていないのかもしれません。
まとめ
\(2^{32}\)は4Gですね。これくらいぱっと分かるようになっておきましょう。
一目おかれる存在になるかもしれません。
コメント