Why do we use capital M for megabytes and lowercase k for thousands?

The distinction between capital 'M' for megabytes and lowercase 'k' for thousands in computing is a direct consequence of two separate historical conventions colliding: the metric system's prefix rules and the later, industry-specific need to denote binary multiples. The lowercase 'k' for kilo, representing one thousand, is borrowed directly from the International System of Units (SI), where 'k' is the standardized symbol for the 10³ multiplier. This usage was adopted early in computing for approximations, such as in "4k memory," meaning roughly four thousand bytes. Crucially, the SI system reserves a capital 'K' for the unit of temperature, Kelvin, which reinforced the use of the lowercase form in technical contexts to avoid ambiguity, even though the 'k' in computing often unofficially represented 1024.

The capital 'M' for mega, however, follows the SI rule where 'M' is the correct symbol for the million (10⁶) multiplier. When the term "megabyte" was coined, it initially adhered to this decimal definition. The critical divergence occurred as computer architecture, based on binary addressing, made the power-of-two value of 1,048,576 bytes far more practical for memory and storage design. The industry began using "megabyte" to mean 2²⁰ bytes, but retained the capital 'M' from the SI prefix. This created a fundamental ambiguity: was 'M' decimal or binary? This ambiguity was the root of decades of confusion in storage marketing, where drive manufacturers used decimal megabytes (1,000,000 bytes) while operating systems reported binary megabytes, making capacities appear smaller to consumers.

To resolve this, the International Electrotechnical Commission (IEC) introduced binary prefixes in 1998, formalizing "Mebibyte" (MiB) with the 'Mi' prefix to unambiguously mean 1,048,576 bytes. The standard reaffirmed that 'M' (mega) and 'k' (kilo) should retain their strict SI decimal meanings. In practice, this formal distinction is inconsistently applied. Lowercase 'k' remains entrenched, often flexibly representing either 1000 or 1024 depending on context (like in RAM specifications), while capital 'M' in "MB" is still a frequent source of ambiguity, especially in consumer storage. The persistence of these mixed conventions underscores the weight of legacy practice over formal standardization, with network engineers using decimal megabits per second and software developers often defaulting to binary interpretations, leading to measurable discrepancies in performance reporting and storage capacity.