Byte Size Calculator
Converts between bytes, decimal units (kB, MB, GB) and binary units (KiB, MiB, GiB), showing both at once because software mixes the names up. Handles bits for connection speeds and estimates transfer time.
🔒 This tool runs entirely in your browser. Your files are never uploaded to a server.
Exactly
Decimal — powers of 1000
What drive manufacturers and the SI standard use.
Binary — powers of 1024
What memory, and most operating systems, actually count in.
How long to transfer
Connection speeds are quoted in bits per second, so the byte rate is an eighth of the headline number.
Calculated in this page. Both systems are shown because software is inconsistent: Windows counts in powers of 1024 but labels the result "GB", while macOS and drive manufacturers use powers of 1000. Neither is lying — they are answering different questions with the same word.
How to use it
- Enter a size and pick its unit — bits are there too, for connection speeds.
- Read the exact byte count, which is the only figure with no convention attached.
- Compare the two columns to see how the same bytes get two different numbers.
Two systems, one set of names
There are two legitimate ways to scale a byte count, and the confusion comes entirely from software using the names of one while doing the arithmetic of the other.
decimal (SI) kB = 1000 MB = 1 000 000
binary (IEC) KiB = 1024 MiB = 1 048 576
Drive manufacturers use the decimal units and are correct to. Memory is inherently binary, so RAM is genuinely sold in powers of 1024 — a "16 GB" module really is 16 GiB. Windows calculates in binary and labels it with decimal names; macOS switched to decimal years ago. So the same file can honestly be reported as two different numbers by two different tools.
The gap compounds
Each step multiplies the discrepancy, which is why nobody notices it on small files and everybody notices it on storage:
KiB vs kB +2.40%
MiB vs MB +4.86%
GiB vs GB +7.37%
TiB vs TB +9.95%
PiB vs PB +12.59%
Applied to the classic complaint: a 1 TB drive holds exactly 1,000,000,000,000 bytes. Divide by 1024 three times and you get 931.32, which Windows displays as "931 GB". The correct label for that figure is 931.32 GiB. The drive is exactly the size advertised — you are just reading it in a bigger unit wearing a smaller unit's name.
Bits are a third trap
File sizes are in bytes; connection speeds are in bits. The eight-fold difference between them accounts for most "why is my internet slow" confusion, and it is entirely arithmetic:
40 Mbps → 5.0 MB/s → 1 GB in 200 s
100 Mbps → 12.5 MB/s → 1 GB in 80 s
500 Mbps → 62.5 MB/s → 1 GB in 16 s
1 Gbps → 125 MB/s → 1 GB in 8 s
Note that bits never use the binary convention — a megabit is exactly a million bits, so there is no "mebibit" to worry about. That means converting a connection speed into a download time crosses from one system to the other, which is one more place for the two to be mixed up.
The transfer times here are a theoretical floor. Protocol overhead, latency, disk write speed and everything else using the connection all make the real figure larger, so treat them as "no faster than this" rather than an estimate.
Which to use in your own work
If you are writing something that reports sizes to people, the useful convention is to pick a system and label it honestly. Use kB, MB and GB with powers of 1000, or KiB, MiB and GiB with powers of 1024 — the second is unfamiliar to most readers but it is unambiguous, which matters more in a technical context. What causes support tickets is doing the binary arithmetic and printing the decimal name, because then no amount of care by the reader can recover which you meant.
FAQ
Why does my 1 TB drive show as 931 GB?
Because two different units are both being called "GB". The manufacturer sells 1 TB meaning exactly 1,000,000,000,000 bytes, which is correct SI usage. Windows then divides by 1024 three times, gets 931.32, and labels it GB — when the value it has calculated is really 931.32 GiB. Nothing is missing and no space has been lost to formatting; the same bytes are being described in a different unit under the same name.
Which is right, 1000 or 1024?
Both, for different units. A kilobyte is 1000 bytes because "kilo" means a thousand everywhere else in measurement. A kibibyte is 1024 bytes, and that is the unit computers naturally work in because memory addressing is binary. The genuine error is using the name of one for the value of the other, which most software has done for decades — so in practice you have to know which convention a given number came from.
How far apart do the two systems get?
The gap compounds with each step: a kibibyte is 2.40% larger than a kilobyte, a mebibyte 4.86% larger than a megabyte, a gibibyte 7.37%, a tebibyte 9.95% and a pebibyte 12.59%. That is why the discrepancy is barely noticeable on a photo and very noticeable on a hard drive — and why it will keep getting worse as storage grows.
Why is my download slower than my connection speed?
Partly because connection speeds are quoted in bits and file sizes in bytes, and there are eight bits to a byte. A 100 Mbps line moves 12.5 megabytes per second at best, so a 1 GB file takes at least 80 seconds. The transfer table here does that division for you. Real transfers are slower still because of protocol overhead, latency and whatever else is sharing the connection — treat the figures as a floor rather than a prediction.
Why do bits use 1000 rather than 1024?
Because networking never adopted the binary convention. A megabit is 10^6 bits, full stop, so there is no bit equivalent of the kibibyte to worry about. It does mean that converting a network speed to a file size crosses between the two systems, which is one more reason those calculations go wrong.
Is anything sent anywhere?
No. It is arithmetic done in the page.
How we compare
| Feature | Online Tool Store | A search-engine answer box | Your operating system |
|---|---|---|---|
| Shows both systems side by side | ✓ | ✗ | ✗ |
| Says which convention it is using | ✓ | Rarely | ✗ |
| Handles bits as well as bytes | ✓ | Sometimes | ✗ |
| Estimates transfer time | ✓ | ✗ | While copying |
| Gives the exact byte count | ✓ | Sometimes | ✓ |
| Tells you your actual free space | ✗ | ✗ | ✓ |
| Accounts for filesystem overhead | ✗ | ✗ | ✓ |
This converts and explains; it cannot see your disk. If the question is why a drive has less free space than you expected, the unit confusion above accounts for most of the gap, and the rest is filesystem metadata and reserved space — which only the operating system can tell you about.