Введение
Цифра 0 перед числом — это любая цифра 0, которая предшествует первой ненулевой цифре в числовой строке в позиционной системе счисления. Например, знаменитый идентификатор Джеймса Бонда, 007, содержит два ведущих нуля. Любые нули, расположенные слева от первой ненулевой цифры (любого целого или десятичного числа), не влияют на его значение и могут быть опущены (или заменены пробелами) без потери информации. Поэтому обычное десятичное представление целых чисел не использует ведущие нули, за исключением самого нуля, который в противном случае был бы представлен пустой строкой. Однако в десятичных дробях, строго находящихся между -1 и 1, ведущие нули между десятичной точкой и первой ненулевой цифрой необходимы для указания величины числа и не могут быть опущены, как, например, в одометрах и цифровых часах. Операция подсчёта ведущих нулей эффективно определяет количество ведущих нулевых битов в машинном слове. Ведущий ноль встречается в американской рулетке, где "00" отличается от "0" (ставка на "0" не выигрывает, если шарик попадает в "00", и наоборот). Это же правило применяется в видах спорта, где участники имеют номера; гоночный автомобиль с номером "07" считается отличным от автомобиля с номером "7". Бенито Сантьяго, бейсбольный ловец высшей лиги, который несколько лет носил номер 09, является единственным игроком из основных профессиональных спортивных лиг, использовавшим номер с ведущим нулём, не считая тех, кто носил номер 00 (он носил дополнительный ноль, чтобы избежать проблем с защитной экипировкой ловца, позволяя заднему ремню проходить между цифрами, а не над одной цифрой 9). Деннис Родман попросил номер 01, когда присоединился к «Чикаго Буллз» (так как его обычный номер 10 уже был выведен из обращения), но Национальная баскетбольная ассоциация запретила это, и Родман вместо этого надел номер 91. В большинстве стран, кроме США, числа между 0 и 1, представленные в виде десятичной дроби, включают ноль перед десятичной точкой (например, 0,64 или во многих странах 0,64), в то время как в США этот ноль часто опускается (.64).
A leading zero is any 0 digit that comes before the first nonzero digit in a number string in positional notation. For example, James Bond's famous identifier, 007, has two leading zeros. Any zeroes appearing to the left of the first non zero digit (of any integer or decimal) do not affect its value, and can be omitted (or replaced with blanks) with no loss of information. Therefore, the usual decimal notation of integers does not use leading zeros except for the zero itself, which would be denoted as an empty string otherwise. However, in decimal fractions strictly between −1 and 1, the leading zeros digits between the decimal point and the first nonzero digit are necessary for conveying the magnitude of a number and cannot be omitted, odometers, and digital clocks. The count leading zeros operation efficiently determines the number of leading zero bits in a machine word. A leading zero appears in roulette in the United States, where "00" is distinct from "0" (a wager on "0" will not win if the ball lands in "00", and vice versa). Sports where competitors are numbered follow this as well; a stock car numbered "07" would be considered distinct from one numbered "7". Benito Santiago, a Major League Baseball catcher who wore the number 09 for several years, is the only major professional sports league player to use a jersey number with a leading zero, not counting several who have worn the number 00 (he wore the extra zero to avoid complications with his catcher's pads, allowing the back strap to run between the numbers instead of over a single digit 9). Dennis Rodman had requested the number 01 when he joined the Chicago Bulls (as his usual number 10 had already been retired), but the National Basketball Association forbade it, and Rodman instead wore 91. In most countries other than the United States, numbers between 0 and 1, expressed as a decimal, include a zero before the decimal point (eg 0.64 or in many countries 0,64) while in the United States this zero is often omitted (.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", поскольку эти цифры не используются в восьмеричной системе счисления. Это поведение может быть неудобным при работе с последовательностями строк, содержащих встроенные десятичные числа с ведущими нулями (обычно имена файлов), для облегчения алфавитной сортировки (см. выше), или при проверке ввода от пользователей, которые не знают, что добавление ведущего нуля приводит к изменению системы счисления.