分析と広告のためのCookie
分析と広告のためにCookieを使っており、どちらもGoogleに送られます。拒否しても、目に見える動作は何も変わりません。プライバシーポリシーを読む
1 GB = 1000000000 B
値を入力すると、ギガバイトからバイトへの計算が入力に合わせてその場で進みます。1 GB あたり 1000000000 B.この比は測って求めたものではなく、定義で決まっています。計算はお使いの端末の中で行われ、入力した数字が通信に乗ることはありません。ただし、そのまわりのページのほうは、ほかのどのページとも同じように広告を読み込みます。
64 GB is 64000000000 B
— 普及価格帯のスマートフォン.
1000 GB is 1000000000000 B
— 「1 テラバイト」として売られているディスク.
0.005 GB is 5000000 B
— スマートフォンで撮った写真 1 枚.
0.000001024 GB is 1024 B
— 1 キビバイト、ややこしさはここから始まる.
| GB | B |
|---|---|
| 1 | 1000000000 |
| 2 | 2000000000 |
| 5 | 5000000000 |
| 10 | 10000000000 |
| 50 | 50000000000 |
| 100 | 100000000000 |
| 500 | 500000000000 |
| 1000 | 1000000000000 |
GB を B に変換
1 ギガバイトは 10 億バイトです。ディスクのメーカー、通信のデータ容量、動画のサイズが使っているのと同じ十進の意味です。
1 バイトは 8 ビットですが、いつもそう決まっていたわけではありません。初期の計算機は 6 ビット、7 ビット、9 ビットを使っていました。8 が勝ったのは、そこに 1 文字が収まり、しかもその数がきれいに半分ずつ割れるからです。
ギガバイトからバイトへ移ると、小数点が右へ 9 桁ずれます。ほかには何も変わりません。覚えておく倍率もなければ、丸め方を決める必要もありません。数字は同じ並びのまま、位置だけが動きます。
1,234 GB は 1234000000000 B——同じ数字が、ずれただけです。ひと目で検算できる数少ない計算がこれです。結果の数字が始めたときの数字と違っていたら、それを変えたのはこの計算ではありません。
このページが出す値は 1 GB あたり 1,000,000,000 バイトです。giga は 10 の 9 乗を意味する SI 接頭辞で、これがストレージ容量、ネットワークの転送量、クラウドの請求で使われる意味です。4 GB は 4000000000、換算は小数点を 9 桁ずらすだけです。
混同されるのは 1,024 の 3 乗、1,073,741,824 で、正しくはギビバイトと呼ばれる単位です。両者は 7.4 パーセント違います。4 GB では差は 294,967,296 バイトで、コンテナイメージ 1 つ分ほどの大きさが、レビューでは見えないまま両方とも「4 ギガバイト」と読めてしまいます。
この規模のサイズ指定を受け付けるほとんどのツールは 1,024 の累乗で読みます。Docker の --memory=1g は 1,073,741,824 バイトを意味し、JVM の -Xmx1g と -Xms1g も同じです。dd を含む GNU ツール群は明示的に区別していて、G は 1,024 の 3 乗、GB は 1,000 の 3 乗を意味します。
一文字の接尾辞は二進法、B で終わる 2 文字の接尾辞は十進法、という覚え方が目安になります。確実に確かめたいときは、値を設定してから稼働中のシステムから読み戻し、意図した数字と比較してください。
2 の 32 乗は 4,294,967,296 で、これは慣習ではなく壁です。32 ビットの符号なしオフセットが保持できる最大値だからで、長さや位置を 32 ビットで保存する仕組みはすべてそこで止まります。最もよく知られる例は FAT32 で、1 ファイルの上限は 4,294,967,295 バイト、4 GiB より 1 バイト少ない値です。
古いアーカイブ形式やアップロードの経路、一部のデータベースの列型、多くのドライバーやファームウェアが同じ 32 ビット長を持ち、どれも 4.29 GB から 4.30 GB のあたりで失敗します。丸い十進の数字では失敗しません。
サイズを対象に自動で動く仕組みはバイトで指定を受けます。オブジェクトストレージのライフサイクルルール、cgroup のメモリー上限、ディスククォータ、アラートのしきい値はすべてバイトの比較です。ここには丸めの工程がどこにもなく、7.4 パーセント低く書かれた値は意図的に選ばれたかのようにそのまま振る舞います。
こうした値は一度書かれると何年も参照され続けます。128 GB を超えるオブジェクトを低頻度層に移すルールは、それを決めた人がいなくなった後も動き続け、128000000000 と 137438953472 の違いが静かにどのオブジェクトが対象になるかを変えます。
デプロイの設定はメモリーとストレージを並べて指定することが多く、この 2 つの業界は接頭辞を違う意味で使います。メモリーは 2 の累乗でアドレス指定されるので、16 GB として売られるモジュールは 17,179,869,184 バイトを持ち、十進法の代替はありません。ストレージは容量で売られるので、1 TB のボリュームはちょうど 1,000,000,000,000 バイトです。
あるフィールドがどちらの意味かはプラットフォームごとのドキュメントの問題で、推測すべきではありません。コンテナランタイムや言語ランタイムのメモリーは概ね二進法、ブロックストレージやオブジェクトストレージ、ネットワーク転送は概ね十進法です。
意図より 7.4 パーセント小さいメモリー上限はデプロイ時には失敗しません。プロセスが通常の稼働範囲の上限に達したとき、つまり負荷がかかったとき、1 日のうちの特定の時間帯、キャッシュが温まった後に失敗します。しかもエラーではなく強制終了として失敗するので、ログは説明もなく途切れます。
対策は稼働中のシステムから設定を読み戻し、意図した数字と比較することです。1073741824 と書いたつもりで 1000000000 と読み戻された、あるいはその逆であれば、そのフィールドがどちらの慣習を使っているかが恒久的に分かります。
1 GB は 1000000000 B.画面に出しているのは有効数字 12 桁までです。ギガバイトとバイトの比そのものは定義によって決まっている厳密な値で、丸めが入るのは表示のところだけです。
いいえ。計算はブラウザーの中で行われます。通信を切ったままでも計算は続けられますし、それがいちばん手軽な確かめ方でもあります。
同じ名前の単位が 2 つ動いているからです。メーカーは 1 GB を 1,000,000,000 バイト(10 億バイト)として数えます。一方 Windows が表示しているのはギビバイト、つまり 1,073,741,824 バイトで、それを「GB」と呼んでいます。同じディスクが 7 パーセントほど小さく見えるのはこのためです。消えたものは何もありません。
1Bは1e-9GBです。同じ関係を逆から読んだだけなので、一方のページの答えをもう一方に通せば、必ず元の値に戻ります。
このページがデータ量の単位について述べていることは検証できます。根拠となる資料は次のとおりです。
係数はページ内の定数で、計算は四則演算だけです。だからどこにも送信されませんし、送信する必要もありません。入力した数値はブラウザーから出ません。運ぶためのリクエストが存在しないからです。