Провідні нулі

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Провідний нуль — це будь-яка цифра 0, що стоїть перед першою ненульовою цифрою в рядку чисел у позиційних системах числення.[1] Наприклад, Джеймс Бонд має відомий код, 007, у якому перші дві цифри є нулями.[2] Коли ведучі нулі займають перші позиції цілого числа, то вони можуть бути пропущені або опущені для того ж числового значення.[3] Таким чином, звичайне десяткове число не використовує провідні нулі за винятком нуля, який буде позначати порожній рядок.[4] Однак, при записі десяткового дробу числа розташованого строго між 1 і -1, провідні нулі, розташовані між десятковим розділювачем та першою ненульовою цифрою, необхідні, тому, що вони виражають абсолютне значення числа і не можуть бути пропущені.[1]

Приклади використання

[ред. | ред. код]

Часто провідні нулі зустрічаються на електронних дисплеях або на електронних сегментних індикаторах, які містять фіксовані набори цифр. Такі прилади включають ручні лічильники, секундоміри[5], одометри[6] та цифрові часи.[5] Нулі також генеруються багатьма старими комп'ютерними програмами при створенні значення для нових записів, розрахунків та інших файлів, а також ймовірно, будуть використовуватися утилітою білінгових систем та інформаційними системами державних баз даних. Багато цифрових камер та інших записувальних пристроїв, а також електронних засобів масової інформації використовують провідні нулі при створенні й збереженні нових файлів, щоб зробити імена однакової довжини.

Провідні нулі також присутні щоразу, коли кількість цифр є технічно фіксованою (наприклад, в регістрах пам'яті), але збережене значення не є достатньо великим, щоб привести до ненульового найбільш вагомого розряду.[7] Кількість провідних нулів операції ефективно визначає кількість провідних нульових бітів в машинному слові.[8]

Провідні нулі використовують у рулетці в США, де «00» відрізняється від «0» (ставка на «0» не виграє, якщо шар на «00», і навпаки). Провідні нулі є у спорті, де суперники пронумеровані; гоночний автомобіль[en], пронумерований «07», буде відрізнятися від авто, яке пронумероване «7». Беніто Сантьяго[en], ловець Головної бейсбольної ліги, носив номер 09 протягом декількох років, це єдиний великий гравець професійної спортивної ліги[en] який використовував номер Джерсі[en] з провідним нулем, не враховуючи кількох, хто носив номер 00. Це найбільш поширено з однозначними числами.

Переваги

[ред. | ред. код]
Порівняння

Нулі використовуються щоб зробити порядок зростання номерів відповідним до алфавітного порядку: наприклад, 11 за алфавітом перед 2, але після 02. Це не працює з від'ємними числами, хоча, неважливо чи використовуються провідні нулі, чи ні: число -23 йде в алфавітному порядку після -01, -1 і -22, хоча воно менше за ці числа.

Запобігання помилок

Провідні нулі в реченні запобігають тому, щоб неуважний читач не помітив десяткову точку. Наприклад, в сучасній фармації широко прийнята угода, що провідні нулі не повинні виключатися з будь-якої дози або дози вимірювання в приписці до лікарського засобу. Точно так же, як і провідні нулі є обов'язковими, кінцеві нулі[en] заборонені. В обох випадках причина однакова: щоб запобігти неправильному читанню та неправильному дозуванню на один або кілька порядків.

Запобігання шахрайства

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

0 як префікс

[ред. | ред. код]

Префікс 0 використовується в C, щоб вказати на рядкові подання вісімкових чисел, відповідно до вимог ANSI C для функції «strtol» (перетворення рядків до чисел) в бібліотеці «stdlib.h». Багато інших мов програмування, таких як Python 2, Perl, Ruby, PHP та мови з Unix оболонкою також слідують цій специфікації для перетворення рядків у числа. Наприклад, «0020» представляє не 2010 (2×101 + 0×100), а швидше 208 = 1610 (2×81 + 0×80 = 1×101 + 6×100). Десяткові числа з провідними нулями будуть інтерпретуватися як вісімкові мовами, які підтримують ці вимоги і будуть генерувати помилки (а не тільки несподівані результати), якщо вони містять «8» або «9», бо ці цифри не існують в вісімковій системі. Така поведінка може стати неприємністю при роботі з послідовностями рядків, з вбудованими нулями десяткових чисел (наприклад назви файлів) для полегшення алфавітного сортування, або при перевірці вхідних сигналів від користувачів, які не знали б, що треба додавати провідні нулі.

Посилання

[ред. | ред. код]
  1. а б Miller, Jane E. (2008), The Chicago Guide to Writing about Numbers, University of Chicago Press, с. 276, ISBN 9780226526324.
  2. Lafore, Robert W. (1987), Microsoft C: programming for the IBM, H.W. Sams, с. 294, ISBN 9780672225154.
  3. Zegarelli, Mark (2014), Basic Math and Pre-Algebra Workbook For Dummies (вид. 2nd), John Wiley & Sons, с. 8, ISBN 9781118828304.
  4. Flynt, Clif (2012), Tcl/Tk: A Developer's Guide, Elsevier, с. 752—753, ISBN 9780123847171.
  5. а б Greene, Jennifer; Stellman, Andrew (2013), Head First C#, O'Reilly Media, Inc., с. 770, ISBN 9781449358884.
  6. Dueck, Robert; Reid, Ken (2011), Digital Electronics, Cengage Learning, с. 48, ISBN 9781133708964.
  7. Kuc, Roman (1999), The digital information age: an introduction to electrical engineering, PWS Pub. Co., с. 67, ISBN 9780534953157.
  8. Dandamudi, Sivarama P. (2005), Guide to RISC Processors: for Programmers and Engineers, Springer, с. 139, ISBN 9780387274461.