Monday, 19 December 2016

Why Do Hard Drives/USB Drives Show Less Space Than Advertised When Plugged In?

When I bought my first USB flash drive a few years ago (2 GB), I was rather shocked to see that it only showed 1.95 GB as my total available space. Feeling robbed of the remaining 0.5 GB by the manufacturer, I looked it up on the Internet and found (admittedly, to my relief) that every other hard drive user had the same concern.
You can see this for yourself right now. Take any digital storage device (e.g., USB flash drive, hard drive, SD card etc.) and plug it into a Windows computer. You will notice that the total available space displayed on the computer is slightly less than the advertised capacity of the device. For instance, if you plug in a 16 GB USB drive, the total available space on a Windows computer would be around 15.6 GB – around 0.4 GB short of the advertised capacity.
Why does this happen? Why do Windows devices and some older versions of MacOS show a total available space that is different from what’s advertised? Some people might claim that this is a classic example of false advertising by marketers, or that the manufacturers are purposely lying about the capacity of hard drives, but is that really the truth?
Short answer: Common programs, including Windows, system BIOS and some old versions of MacOS, use the binary number system, where 1 GB amounts to 1024 MBs, rather than 1000 MBs, which leads to this anomaly in storage devices.
Before trying to understand the reason behind this anomaly, it’s important to know a thing or two about MBs, GBs and TBs – the units used to express the capacity of storage devices of different types.

Understanding the basics: kB, MB and GB

The smallest entity used to measure the capacity of storage devices is a rather aptly named unit called a ‘bit’. A sequence of 8 bits make up a ‘byte’; it is this sequence of 8 bits that is processed as a single unit of information. A cluster of 1000 bytes makes up a kilobyte (kB).
but-everyone-says-meme
Many people might tell you that 1 kB has 1,024 bytes, and not 1,000 bytes, and that you should get your computer basics straight. However, those people are confused, just like millions of other computer users all over the world.

Decimal system vs. Binary system

Note that the amount of disk space consumed by a file depends on the file system itself. Now, many popular programs and operating systems, including Microsoft Windows (the most commonly used operating system for computers), system BIOSFDISK and even some old versions of macOS follow the binary numbering system (with base 2). There is a reason behind that too, but for the scope of this article, suffice to say that it’s convenient within the computer to organize things in groups of powers of 2. Therefore, 1 kB contains 2^10 = 1024 bytes.
However, there’s a catch…. the metric prefixes (e.g., kilo, mega, giga) that we use for measuring the storage capacity of hard drives are all decadic, meaning that they are all expressed as powers of 10 (and not 2).
This prefix system is great for the decimal system, but in a binary system – the one that Windows and many other programs use – the terms kilo, mega, giga etc. do not even exist. Since they work with powers of 2, they use slightly different prefixes to express large numbers. For example, 1024 bytes make up 1 kibibyte, which is represented as KiB. Similarly, 1024 kibibytes make up 1 Mebibyte (MiB). Below is a table to help you understand this better:
Multiples of bytes table
A lot of confusion between the true storage capacity of a device stems from the way these units are commonly written or printed. People mistakenly use the units of the decimal and binary system interchangeably. For example, the unit ‘KiB’ is casually written as ‘KB’ and is therefore mistaken for ‘kilobytes’, but it actually represents ‘kibibytes’. The same goes for MiB and MB (mebibytes and megabytes) and TiB and TB (tebibytes and terabytes).

Do manufacturers falsely label their storage devices to show more capacity?

That answer is a big NO.
manufacturers-always-fool-custo-meme
It is the manufacturers (and not programs like BIOS, Windows etc.) that correctly use the prefix mega and giga, i.e., they use the powers of 10 to express storage capacities when labelling their products.
Take a look at this picture of the back side of the packet of a USB flash drive that I recently bought:
pendrive-cover1
Notice that it clearly mentions on the cover that 1 GB = 1,000,000,000 bytes. The best way to check the true capacity of your drive is to check the number of ‘bytes’, rather than MBs and GBs, as the latter could be somewhat confusing. For manufacturers, 1 MB is 1000 kB , but for Windows, 1 MB is 1024 KB (which is actually 1024 kibibytes). This is why, when you plug a storage device into a Windows computer, the total available space appears slightly less than what’s advertised.
Below is a table showing the anomalies in storage capacity as they appear on Windows:
Windows output (Binary)
Note that Windows could update their user interface and simply use the decimal system to display total capacity. That’s what Apple’s OS X has already done.
The next time you buy a storage device, such as an external hard drive, for your computer and notice that its available space is less than the space advertised on its packaging, don’t fret. Just check the packaging and verify whether its capacity is 2 TB or 2 TiB. Better still, check the number of ‘bytes’ that the hard drive can handle. At that point, you can easily calculate its correct total capacity. Also, if it’s a Windows machine that you’ve plugged it in, it’s bound to show less space than what’s printed on the cover. However, don’t jump to the conclusion that you’ve been cheated out of those 50 GBs by the manufacturer – they’re just trying to be honest!