Ведущий ноль

Из Википедии, бесплатной энциклопедии

Ведущий ноль — это любая 0 цифра , которая стоит перед первой ненулевой цифрой в числовой строке в позиционной записи . [1] Например, Джеймса Бонда , 007, имеет два ведущих нуля. знаменитый идентификатор [2] Любые нули, появляющиеся слева от первой ненулевой цифры (любого целого или десятичного числа), не влияют на его значение и могут быть опущены (или заменены пробелами) без потери информации. [3] Поэтому в обычной десятичной записи целых чисел не используются ведущие нули, за исключением самого нуля , который в противном случае был бы обозначен как пустая строка . [4] Однако в десятичных дробях строго между -1 и 1 ведущие нули между десятичной запятой и первой ненулевой цифрой необходимы для передачи величины числа и не могут быть опущены. [1] а конечные нули – нули, стоящие после десятичной точки и после последней ненулевой цифры – могут быть опущены без изменения значения.

Происшествие [ править ]

Часто ведущие нули встречаются на неэлектронных цифровых дисплеях или на таких электронных, как семисегментные дисплеи , содержащие фиксированные наборы цифр. К таким устройствам относятся ручные счетчики, секундомеры , [5] одометры , [6] и цифровые часы . [5] Ведущие нули также генерируются многими старыми компьютерными программами при создании значений для присвоения новым записям, счетам и другим файлам и поэтому могут использоваться системами выставления счетов за коммунальные услуги, информационными системами кадров и правительственными базами данных. Многие цифровые камеры и другие устройства записи электронных носителей используют ведущие нули при создании и сохранении новых файлов, чтобы имена имели одинаковую длину.

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

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

В большинстве стран, кроме США, числа от 0 до 1, выраженные в виде десятичной дроби, включают ноль перед десятичной запятой (например, 0,64 или во многих странах 0,64), тогда как в США этот ноль часто опускается (. 64).

Преимущества [ править ]

Сопоставление [ править ]

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

Предотвращение ошибок [ править ]

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

Предотвращение мошенничества [ править ]

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

Ноль как префикс [ править ]

Префикс 0 используется в C для указания строкового представления восьмеричных чисел, как того требует стандарт ANSI C для strtol() функция (которая преобразует строки в длинные целые числа) в <stdlib.h> библиотека. [11] Многие другие языки программирования, такие как Python , Perl , Ruby , PHP Unix, и оболочка bash также следуют этой спецификации для преобразования строк в числа. В качестве примера, " 0020" не представляет собой 20 10 ( 2 ×10 1 + 0 ×10 0 ), а скорее 20 8 = 16 10 ( 2 ×8 1  + 0 ×8 0  = 1 ×10 1  + 6 ×10 0 ). Десятичные числа, записанные с ведущими нулями, будут интерпретироваться как восьмеричные в языках, которые следуют этому соглашению, и будут генерировать ошибки, если они содержат «8» или «9», поскольку эти цифры не существуют в восьмеричном формате. Такое поведение может быть неприятным при работе с последовательностями строк со встроенными десятичными числами, дополненными нулями (обычно именами файлов), для облегчения сортировки по алфавиту (см. выше) или при проверке входных данных от пользователей, которые не знают, что добавление начального нуля вызывает это. базовая конверсия.

См. также [ править ]

Ссылки [ править ]

  1. ^ Перейти обратно: а б Миллер, Джейн Э. (2008), Чикагское руководство по написанию чисел , University of Chicago Press, стр. 276, ISBN  9780226526324 .
  2. ^ Лафоре, Роберт В. (1987), Microsoft C: программирование для IBM , HW Sams, стр. 294 , ISBN  9780672225154 .
  3. ^ Зегарелли, Марк (2014), Учебное пособие по основам математики и предварительной алгебры для чайников (2-е изд.), John Wiley & Sons, стр. 8, ISBN  9781118828304 .
  4. ^ Флинт, Клиф (2012), Tcl/Tk: Руководство разработчика , Elsevier, стр. 752–753, ISBN  9780123847171 .
  5. ^ Перейти обратно: а б Грин, Дженнифер; Стеллман, Эндрю (2013), Head First C# , O'Reilly Media, Inc., стр. 770, ISBN  9781449358884 .
  6. ^ Дуек, Роберт; Рид, Кен (2011), Цифровая электроника , Cengage Learning, стр. 48, ISBN  9781133708964 .
  7. ^ Куц, Роман (1999), Эпоха цифровой информации: введение в электротехнику , PWS Pub. Компания, с. 67 , ISBN  9780534953157 .
  8. ^ Дандамуди, Шиварама П. (2005), Руководство по RISC-процессорам: для программистов и инженеров , Springer, стр. 139, ISBN  9780387274461 .
  9. ^ Армор, Терри. Присоединение к Bulls «Почти как сборник рассказов» для бывшего выпускника Коллинза Брауна. Архивировано 4 июня 2015 года в Wayback Machine . 6 октября 1995 г.
  10. ^ Дэвис, Нил М. (2005). Медицинские сокращения: 26 000 удобств за счет связи и безопасности (12-е изд.). Уорминстер, Пенсильвания: Neil M. Davis Associates. п. 7. ISBN  0931431123 .
  11. ^ Керниган, Брайан ; Ричи, Деннис М. (март 1988 г.). Язык программирования C (2-е изд.). Энглвуд Клиффс, Нью-Джерси : Прентис Холл . п. 252. ИСБН  0-13-110362-8 .