1. 1024 byte は 1 KB
  2. 2048 byte は 2 KB
  3. 0 byte は 0 KB
  4. 512 byte は 0.5 KB
  5. 1048576 byte は 1024 KB
コース一覧
コンピューターサイエンス入門:理論編
バイト → KB 変換

コンピューターサイエンス入門:理論編

2 進数、論理演算、ビット演算、データ構造、計算量、メモリモデルなど、プログラミングの土台となるコンピュータサイエンスの理論知識を学べるコースです。プログラミングを始めたばかりの学習者や、CS の体系的な土台を作りたい現役エンジニアを対象としています。約 13 時間 (1 日 30 分 × 26 日) で 53 レッスンを修了でき、修了後はコードのパフォーマンスや設計判断の根拠を理解した上で実装できるようになります。

1
2進数とビット演算
01. 2進数から10進数への変換5分
02. 10進数から2進数への変換5分
03. ビットAND演算でフラグ判定5分
04. OR / XOR でフラグを操作する5分
05. popcount で 1 のビット数を数える5分
06. シフト演算で 2 倍 / 半分5分
07. 16 進数から 10 進数への変換5分
08. 第 1 章まとめクイズ5分
2
文字コードと真偽値ロジック
01. 文字 → ASCII コード5分
02. コード → 文字5分
03. UTF-8 のバイト長を返す5分
04. AND / OR の真理値表5分
05. NOT / XOR の真理値表5分
06. 含意 (→) を AND/OR/NOT で表現5分
07. ド・モルガンの法則5分
08. 第2章まとめクイズ5分
3
計算量とBig-O
01. forループの実行回数を返す5分
02. 入れ子ループの実行回数5分
03. 線形探索 (O(n))5分
04. 二分探索 (O(log n))5分
05. バブルソート5分
06. 配列の最大と最小5分
07. 累積和で範囲合計5分
08. 第3章まとめクイズ5分
4
データ構造 (基本)
01. スタック (push/pop) を実装する5分
02. キュー (enqueue / dequeue) を実装する5分
03. カッコのバランス判定 (スタック応用)5分
04. set で重複を除去する5分
05. map で出現回数を数える5分
06. 二数の和 (map で O(n))5分
07. アナグラム判定5分
08. 第 4 章クイズ — データ構造 (基本)5分
5
ファイル / メモリ / IO 概念
01. バイト → KB 変換5分
02. ディスクサイズフォーマット5分
03. キャッシュヒット率5分
04. LRU 簡易シミュレーション5分
05. エンディアンの入れ替え (uint32)5分
06. バッファ範囲チェック5分
07. 第5章まとめクイズ5分
6
ネットワークと符号化
01. Base64 エンコード後の長さ計算5分
02. URL エンコード対象文字数5分
03. IPv4 アドレスを 32bit 整数に変換5分
04. 32bit 整数を IPv4 アドレスに変換5分
05. CIDR プレフィックスからネットマスクを作る5分
06. 単純チェックサム5分
07. 第6章まとめクイズ5分
7
設計と DB 基礎
01. 重複データを 1NF に変換 (フラットなリスト化)5分
02. キーで join (map 利用)5分
03. 残高転送のトランザクション風処理5分
04. CAP の availability 模擬5分
05. URL ルーティング5分
06. 疎結合と密結合 — 依存性注入で設計を変える12分
07. コース総まとめクイズ5分

バイト → KB 変換

アップロードの上限を決めるとき、設定ファイルには 10485760 のような数字が並びます。大きいのか小さいのか、桁を数えないと分かりません。これを人が読める大きさに直す一歩目が、割り算です。

桁を数えないと大きさが分からない

コンピュータが数える最小の単位は bit で、8 個まとめたものが 1 byte です。ファイルの大きさも、通信量も、DB に入る 1 行の重さも、根っこはこの byte で数えられています。ただし byte のまま並べると桁が多すぎるので、1024 個ごとに名前を付け替えて短く書きます。

単位byte 数
1 KB1,024
1 MB1,048,576
1 GB1,073,741,824
1 TB1,099,511,627,776

上の段へ 1 つ上がるたびに 1024 倍です。1000 ではなく 1024 なのは、これが 2 の 10 乗で、2 進数の世界ではきりのよい数だからです。逆に、下の単位から上の単位へ直したいときは 1024 で割ります。冒頭の 10485760 も、2 段上がれば見慣れた数字になります。

Python

print(2 ** 10) # 1024 print(1 << 10) # 1024 2 進数では 1 を 10 個ぶんずらすだけ

整数で割ると、あと少しが消える

割り算には、小数を捨てる書き方と、小数を残す書き方があります。どちらを選ぶかで結果が変わります。

Python

elapsed_ms = 1500 print(elapsed_ms // 1000) # 1 print(elapsed_ms / 1000) # 1.5

// は小数を捨てるので、1.5 秒が 1 秒になります。容量でも同じことが起きます。あと少しで 1 段上がる値と、ほとんど空の値が、同じ数字に見えてしまうということです。差を残したいときは小数のまま返します。

JavaScript

const bits = 20; console.log(bits / 8); // 2.5

JavaScript の / は最初から小数を返すので、切り捨てたいときだけ Math.floor を足します。逆に Python は割り算の記号が 2 種類あるので、どちらを書いたかを毎回意識します。

丸めるのは表示のとき

2.5 を 2.5 KB と出すか 3 KB と出すかは、画面側の都合です。変換する関数の中で小数点以下を落としてしまうと、あとから桁を増やしたくなったときに直す場所が増えます。数を返す関数は生の値を返し、丸めは見せる直前で行う、と分けておきます。こう分けておくと、単位の数え方を変えたくなった日も、直すのは 1 か所で済みます。

解説

Mbps は 1 秒あたりの bit 数、MB/s は 1 秒あたりの byte 数です。同じ数字が並んでいても 8 倍違います。回線の速度とダウンロードの速度が食い違って見えるのは、たいていこれが原因です。

1024 と 1000 が食い違う

OS がファイルの大きさを出すときは 1024 ごと、ハードディスクの箱に書いてある容量は 1000 ごとで数えていることが多いです。同じ 1 TB でも、箱の表記より OS の表示が小さく見えるのはこのためです。1024 ごとの単位を厳密に書き分けるときは KiB MiB GiB を使いますが、会話では KB と言いながら 1024 を指していることがほとんどです。今回は 1024 で数えます。

要件

  1. byteToKb という名前の関数を実装すること
  2. 1 KB = 1024 byte として計算すること
  3. 0 や 512 など小さい値でも正しい値を返すこと

入出力例

byteToKb(1024) → 1 byteToKb(2048) → 2 byteToKb(0) → 0 byteToKb(512) → 0.5 byteToKb(1048576) → 1024

ヒント

割り算 / を使い、整数除算 // は避ける

1024 で割るだけで答えが出る

戻り値の型は数値 (Python は float、JS は Number)

生田 陸人
監修生田 陸人
ゆめさくエンジニア / 現役ソフトウェアエンジニア監修者プロフィールを見る →
編集 ゆめさく編集部·公開 2026/05/19·更新 2026/08/26

関連レッスン

  • ディスクサイズフォーマット

    バイトを単位付き文字列で読みやすく整形する関数を作る

  • キャッシュヒット率

    ヒット数と総アクセス数からキャッシュヒット率をパーセントで返す

  • LRU 簡易シミュレーション

    ページアクセス列から LRU 方式のキャッシュミス回数を求める

  • エンディアンの入れ替え (uint32)

    32bit 整数のバイト順を入れ替えてビッグエンディアンとリトルエンディアンを変換する

main.py
学習モード
エディタを読み込んでいます

メモ

バイト → KB 変換

⌘S で保存