1MB 是 1000KB 還是 1024KB?上傳限制怎麼算?

兩種都有人用:十進位 1MB = 1000KB,二進位 1MiB = 1024KiB。上傳網站沒說明算法時,以 1000 進位計算並留一點緩衝,大小這關就不會因為算法不同被擋。

文章 文件與照片壓縮 Charonyu 實用教學
PassSize 畫面

本文提到的 PassSize 目前審核中・即將上架,還不能下載。上架前可以先用文中的內建方法,上架後這裡會換成下載連結。

快速回答

兩種說法都有人用。 依十進位(國際單位制)計算,1MB = 1000KB = 1,000,000 bytes;依二進位計算,1MiB = 1024KiB = 1,048,576 bytes,但很多軟體仍把它寫成「MB」。iPhone 和 Mac 系統顯示容量時用的是 1000 進位(個別 App 可能不同)。上傳網站如果沒說清楚,用 1000 進位計算並留一點緩衝最保險,例如限制 2MB 就壓到 1.9MB 左右。

為什麼會有 1000 和 1024 兩種算法?

電腦底層是二進位,記憶體容量天生是 2 的次方,1024(2¹⁰)剛好接近 1000,早年就習慣把 1024 bytes 叫做 1KB。但「k」在國際單位裡本來就是 1000(像 1 公里 = 1000 公尺),兩種用法於是並存。

為了區分,國際標準另外定義了二進位單位:

十進位大小二進位大小
1 KB1,000 bytes1 KiB1,024 bytes
1 MB1,000,000 bytes1 MiB1,048,576 bytes
1 GB1,000,000,000 bytes1 GiB1,073,741,824 bytes

在 MB 這個級距,兩種算法差了大約 4.9%;到 GB 差了約 7.4%。

iPhone 和 Mac 用哪一種?

Apple 支援文件說明,iOS 11 以後、Mac OS X Snow Leopard(10.6)以後,系統都用十進位顯示容量,所以在 iPhone「檔案」App 或 Mac Finder 看到的「2 MB」,就是大約 2,000,000 bytes。更早的 iOS 10 和 OS X Leopard 以前則是二進位。

相對地,Windows 檔案總管用 1024 進位計算卻標示為 KB、MB,所以同一個檔案在 Windows 上看起來會比較小。例如 2,050,000 bytes 的照片,iPhone 顯示約 2.05MB,Windows 卻顯示約 1.95MB。

上傳網站是怎麼檢查的?

網站通常是直接比對檔案的 bytes 數,只是門檻怎麼設,要看工程師寫的是 2,000,000 還是 2,097,152:

  • 寫成 2,000,000 bytes(1000 進位):比較嚴格。
  • 寫成 2,097,152 bytes(1024 進位):比較寬鬆。

從外面看不出對方用哪一種,所以危險的就是剛好卡在中間的檔案:例如 2,050,000 bytes,在 1024 進位的網站會過,在 1000 進位的網站會被擋。

怎麼抓安全範圍?

  • 一律用 1000 進位計算上限:2MB 就當成 2,000,000 bytes,500KB 就當 500,000 bytes。
  • 再留一點緩衝:例如抓上限的 95%,2MB 就壓到約 1.9MB,500KB 壓到約 475KB。
  • 不要在 Windows 上看大小就判斷過關:Windows 顯示的數字會偏小。
  • 想看精確數字:iPhone 在「檔案」App 長按檔案 →「取得資訊」可以看到檔案大小。

壓到 500KB 的實際做法可以看〈報名照片要小於 500KB,手機怎麼縮小?〉。

用 PassSize 不用自己換算

PassSize 的目標大小以 1000 進位計算(2MB = 2,000,000 bytes),並再保留約 2% 緩衝,所以結果也會小於 1024 進位的 2MB(2,097,152 bytes),不會因為算法不同在大小上被擋;格式、長寬等其他規定仍要另外確認。你只要選 500KB、1MB、2MB 或輸入自訂大小,App 會在不超過目標的前提下找可用的最高品質,壓縮都在手機上完成。詳細步驟見〈iPhone 照片怎麼壓到 2MB 以下?〉。

小提醒:同一個檔案從 iPhone 傳到 Windows 電腦,大小數字可能「變小」,這不是檔案被壓縮,只是算法不同。送件前以 1000 進位為準最安全。

PassSize:文件與照片壓縮

揭露:PassSize 是本站(Charonyu)開發的 App。文中的內建方法與其他做法,都是不需要下載我們的 App 也能使用的選擇。

常見問題

iPhone 顯示的 MB 是用 1000 還是 1024 算?

Apple 說明 iOS 11 以後與 Mac OS X Snow Leopard 以後的系統,都用十進位計算容量,也就是 1MB = 1,000,000 bytes。

Windows 顯示的大小為什麼跟 iPhone 不一樣?

Windows 檔案總管習慣用 1024 進位計算,卻標成 KB、MB,所以同一個檔案在 Windows 上看起來會比在 Mac 或 iPhone 上小一點。

上傳限制 2MB,檔案 1.99MB 一定過嗎?

不一定。如果 1.99MB 是用 1024 進位顯示的,換成 bytes 其實超過 2,000,000,遇到用 1000 進位檢查的網站就會被擋。留 5% 左右的緩衝比較保險。

KiB、MiB 是什麼?

是國際標準為二進位單位取的正式名稱:1KiB = 1024 bytes、1MiB = 1024KiB。用來和十進位的 KB、MB 區分,但很多軟體和網站沒有嚴格使用。

延伸閱讀