One of the widest glyphs in most Latin typefaces, uppercase 'M' lends its name to the typographic 'em' unit — a foundational measure in both print and digital design. It is the 13th letter of the Latin alphabet and sits at ASCII code point 77 (0x4D), exactly 32 below its lowercase counterpart 'm' at 109 (0x6D), maintaining the single-bit case offset (bit 5) shared by all ASCII A–Z / a–z pairs. Though not a hexadecimal digit, 'M' is among the most heavily overloaded uppercase letters in technical and scientific abbreviation.
#define MB (1024 * 1024) // 1 MiBsize_t cache_size = 16 * MB; // 16 MiB buffer
Roman numeral and SI prefix: In Roman numerals, 'M' represents 1000 — the largest standard value (e.g., MMXXVI = 2026). In the International System of Units, uppercase 'M' denotes the mega- prefix (10⁶), appearing in MB, MHz, and MPa. The case distinction is critical: lowercase 'm' means milli- (10⁻³), so confusing the two changes a value by a factor of one billion.
Typographic em unit: The 'em' unit historically derived from the width of the uppercase 'M' in a given typeface, though in modern digital typography it equals the current font size. Em dashes (—), em spaces, and CSS 'em' units all trace back to this convention, making 'M' one of the few letters whose glyph dimensions shaped an entire measurement system.
Date and time formatting: In C-library strftime and many derived systems, %m formats the month as a zero-padded decimal (01–12), while %M formats the minute (00–59). The case distinction between these two specifiers is a common source of bugs — particularly in logging and timestamp code where both month and minute appear in the same format string.
Diacritical variants: Uppercase 'M' has a small but specialized set of diacritical forms — Ṁ (dot above) is a distinct letter in Maltese representing /m/ in certain positions, Ṃ (dot below) appears in IAST transliteration of Sanskrit and Pali, and Ḿ (acute) occurs in some transliteration schemes for Slavic languages. Most Latin-script orthographies leave 'M' unmodified.
Roman numeral and SI prefix: In Roman numerals, 'M' represents 1000 — the largest standard value (e.g., MMXXVI = 2026). In the International System of Units, uppercase 'M' denotes the mega- prefix (10⁶), appearing in MB, MHz, and MPa. The case distinction is critical: lowercase 'm' means milli- (10⁻³), so confusing the two changes a value by a factor of one billion.
Typographic em unit: The 'em' unit historically derived from the width of the uppercase 'M' in a given typeface, though in modern digital typography it equals the current font size. Em dashes (—), em spaces, and CSS 'em' units all trace back to this convention, making 'M' one of the few letters whose glyph dimensions shaped an entire measurement system.
Date and time formatting: In C-library strftime and many derived systems, %m formats the month as a zero-padded decimal (01–12), while %M formats the minute (00–59). The case distinction between these two specifiers is a common source of bugs — particularly in logging and timestamp code where both month and minute appear in the same format string.
Diacritical variants: Uppercase 'M' has a small but specialized set of diacritical forms — Ṁ (dot above) is a distinct letter in Maltese representing /m/ in certain positions, Ṃ (dot below) appears in IAST transliteration of Sanskrit and Pali, and Ḿ (acute) occurs in some transliteration schemes for Slavic languages. Most Latin-script orthographies leave 'M' unmodified.