Updated: 9 October 2026 · Applies to: storage, file and network sizes in general; Linux examples tested with GNU coreutils 9.7 (Debian 13) and uutils coreutils 0.10.0 (Ubuntu 26.04)

A megabyte (MB) is 1,000,000 bytes (10^6). That is the standard decimal meaning, used by disk and SSD makers and in network speeds. Many programs, and memory sizes, use the older binary meaning instead: 1,048,576 bytes (2^20, or 1,024 x 1,024). The correct name for the binary unit is the mebibyte (MiB). The two differ by about 4.9 percent, which is why a file or disk can show two different sizes.

Quick answers

  • 1 MB = 1,000,000 bytes = 1,000 kilobytes (kB) = 8,000,000 bits
  • 1 MiB = 1,048,576 bytes = 1,024 kibibytes (KiB)
  • 1 kB = 1,000 bytes; 1 KiB = 1,024 bytes
  • 1 GB = 1,000 MB = 1,000,000,000 bytes
  • 1 GiB = 1,024 MiB = 1,073,741,824 bytes
  • 1 TB = 1,000,000 MB = 1,000,000,000,000 bytes
  • 1 TiB = 1,024 GiB = 1,099,511,627,776 bytes
  • 1 byte = 8 bits, so 1 MB = 8 megabits (Mb)

Why there are two megabytes

Mega means million in the metric (SI) system. Memory modules and early disks came in sizes that were powers of two, so "kilobyte" and "megabyte" were used loosely for 1,024 and 1,048,576 bytes. Disk makers later settled on the decimal values, and the result was a mix: the "1.44 MB" floppy disk held 1,474,560 bytes, which is 1.44 x 1,024,000, neither decimal nor binary. In 1998 the IEC (International Electrotechnical Commission) defined separate binary prefixes (kibi, mebi, gibi, tebi) to end the confusion. As the Linux units manual puts it: "today, MB = 1000000 B and MiB = 1048576 B".

In practice, both meanings are still in use:

  • Disks, SSDs and USB drives are sold in decimal units. Apple's storage guide states: "Manufacturers of storage devices measure storage capacity using the decimal system (base 10)."
  • Operating systems and tools vary. Some divide by 1,024 but still print "MB" or "GB". Apple notes that older systems, such as OS X Leopard and iOS 10 and earlier, reported storage in binary units.
  • Network speeds use decimal megabits: 1 Mbps is 1,000,000 bits per second.

Why a 1 TB disk shows about 931 GB

Nothing is missing. 1,000,000,000,000 bytes divided by 1,073,741,824 bytes per GiB is about 931.4 GiB, and a program that uses binary units but labels them "GB" prints 931 GB. A 500 GB disk shows about 465.7. On top of this, the file system uses some space for its own structures. On Linux, numfmt does the conversion:

$ numfmt --to=iec-i --format=%.1f 1000000000000
931.4Gi
$ numfmt --to=iec-i --format=%.2f 500000000000
465.67Gi

See both units on Linux

  1. Convert between the two systems. With --from=si the M means 1,000,000; with --from=iec it means 1,048,576:
    $ numfmt --from=si 1M
    1000000
    $ numfmt --from=iec 1M
    1048576
  2. Create one file of each size and list them in bytes. In size options for GNU tools, MB is decimal and M is binary:
    $ truncate -s 1MB one-MB.bin
    $ truncate -s 1M one-MiB.bin
    $ ls -l one-*.bin
    -rw-r--r-- 1 root root 1000000 Oct  9 15:23 one-MB.bin
    -rw-r--r-- 1 root root 1048576 Oct  9 15:23 one-MiB.bin
  3. Now ask for human-readable sizes. -h uses powers of 1,024 but prints only "K" and "M"; --si uses powers of 1,000:
    $ ls -lh one-*.bin
    -rw-r--r-- 1 root root 977K Oct  9 15:23 one-MB.bin
    -rw-r--r-- 1 root root 1.0M Oct  9 15:23 one-MiB.bin
    $ ls -l --si one-*.bin
    -rw-r--r-- 1 root root 1.0M Oct  9 15:23 one-MB.bin
    -rw-r--r-- 1 root root 1.1M Oct  9 15:23 one-MiB.bin
    So a file of exactly one decimal megabyte appears as 977K with ls -lh.
  4. dd prints both units side by side, which makes the difference easy to see:
    $ dd if=/dev/zero of=dd.bin bs=1M count=100
    104857600 bytes (105 MB, 100 MiB) copied, 0.782775 s, 134 MB/s
  5. Disk space works the same way: df -h is binary and df -H decimal. On our test server's root file system:
    $ df -h /
    overlay          48G   13G   33G  28% /
    $ df -H /
    overlay          52G   14G   36G  28% /

The same -h and --si choice exists in du. Every command above gave the same result on Debian 13 (GNU coreutils 9.7) and Ubuntu 26.04 (whose ls and numfmt come from uutils coreutils 0.10.0). To find what is using your disk, see how to find the largest directories and files in Linux.

Megabytes and megabits: download times

Connection speeds are given in megabits per second (Mbps, small b), file sizes in megabytes (MB, capital B). Divide the speed by 8 to get megabytes per second:

  • 100 Mbps = 12.5 MB per second, so a 100 MB file takes at least 8 seconds.
  • 1 Gbps = 125 MB per second, so a 1 GB file takes at least 8 seconds.
  • A 128 kbps MP3 uses 128,000 bits per second: 960,000 bytes, just under 1 MB, per minute.

Real transfers are a little slower because of protocol overhead. For bandwidth and disk use on a hosting account, see how to check disk space and bandwidth usage in cPanel.

Official documentation: units(7) manual on decimal and binary prefixes and How storage capacity is measured on Apple devices.

Related services

KVM VPS hosting

NVMe SSD and full root access, with Free Basic Managed Support.

Unmanaged dedicated servers

full root access and free IPMI KVM, with Free Basic Managed Support.

Managed dedicated servers

our engineers look after the server for you, from $135 a month.

Was this answer helpful?

Still stuck? Open a ticket