Введение

Цифра 0 перед числом — это любая цифра 0, которая предшествует первой ненулевой цифре в числовой строке в позиционной системе счисления. Например, знаменитый идентификатор Джеймса Бонда, 007, содержит два ведущих нуля. Любые нули, расположенные слева от первой ненулевой цифры (любого целого или десятичного числа), не влияют на его значение и могут быть опущены (или заменены пробелами) без потери информации. Поэтому обычное десятичное представление целых чисел не использует ведущие нули, за исключением самого нуля, который в противном случае был бы представлен пустой строкой. Однако в десятичных дробях, строго находящихся между -1 и 1, ведущие нули между десятичной точкой и первой ненулевой цифрой необходимы для указания величины числа и не могут быть опущены, как, например, в одометрах и цифровых часах. Операция подсчёта ведущих нулей эффективно определяет количество ведущих нулевых битов в машинном слове. Ведущий ноль встречается в американской рулетке, где "00" отличается от "0" (ставка на "0" не выигрывает, если шарик попадает в "00", и наоборот). Это же правило применяется в видах спорта, где участники имеют номера; гоночный автомобиль с номером "07" считается отличным от автомобиля с номером "7". Бенито Сантьяго, бейсбольный ловец высшей лиги, который несколько лет носил номер 09, является единственным игроком из основных профессиональных спортивных лиг, использовавшим номер с ведущим нулём, не считая тех, кто носил номер 00 (он носил дополнительный ноль, чтобы избежать проблем с защитной экипировкой ловца, позволяя заднему ремню проходить между цифрами, а не над одной цифрой 9). Деннис Родман попросил номер 01, когда присоединился к «Чикаго Буллз» (так как его обычный номер 10 уже был выведен из обращения), но Национальная баскетбольная ассоциация запретила это, и Родман вместо этого надел номер 91. В большинстве стран, кроме США, числа между 0 и 1, представленные в виде десятичной дроби, включают ноль перед десятичной точкой (например, 0,64 или во многих странах 0,64), в то время как в США этот ноль часто опускается (.64).

Сборник

Ведущие нули используются для того, чтобы восходящий порядок чисел соответствовал алфавитному порядку: например, 11 следует в алфавитном порядке после 2, но перед 02. (См., например, ISO 8601.) Однако это не работает с отрицательными числами, независимо от использования ведущих нулей: −23 следует в алфавитном порядке после −01, −1 и −22, хотя по значению оно меньше всех этих чисел.

Предотвращение ошибок

Ведущие нули в числе также снижают вероятность того, что невнимательный читатель пропустит десятичную точку. Например, в современной фармации широко распространена практика, согласно которой при назначении лекарств нельзя опускать ведущие нули перед десятичной точкой в любой дозе или значении дозировки (например, следует использовать 0,2 мг, а не .2 мг). При этом, замыкающие нули запрещены (например, следует использовать 2 мг, а не 2,0 мг). В обоих случаях это делается для предотвращения неверного прочтения и, как следствие, ошибочной дозировки на один или несколько порядков.

Предотвращение мошенничества

Ведущие нули также могут использоваться для предотвращения мошенничества, заполняя символьные позиции, которые в противном случае могли бы оставаться пустыми. Например, добавление ведущих нулей к сумме чека (или аналогичного финансового документа) затрудняет мошенникам изменение суммы чека перед его предъявлением к оплате.

Нуль как префикс

Префикс 0 используется в языке C для обозначения строкового представления восьмеричных чисел, как того требует стандарт ANSI C для функции `strtol` (которая преобразует строки в длинные целые числа) из библиотеки `<stdlib.h>`. Многие другие языки программирования, такие как Python, Perl, Ruby, PHP и командная оболочка Unix bash, также придерживаются этой спецификации при преобразовании строк в числа. Например, строка "0020" представляет не 2010 (2×10¹ + 0×10⁰), а 208 = 16₁₀ (2×8¹ + 0×8⁰ = 1×10¹ + 6×10⁰). Десятичные числа, записанные с ведущими нулями, будут интерпретироваться как восьмеричные языками, следующими этой конвенции, и вызовут ошибку, если содержат цифры "8" или "9", поскольку эти цифры не используются в восьмеричной системе счисления. Это поведение может быть неудобным при работе с последовательностями строк, содержащих встроенные десятичные числа с ведущими нулями (обычно имена файлов), для облегчения алфавитной сортировки (см. выше), или при проверке ввода от пользователей, которые не знают, что добавление ведущего нуля приводит к изменению системы счисления.