Біт

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук
Основні одиниці
вимірювання
інформації[en]

біт (двійкова)
нат (основа e)
гартлі (десяткова)
кубіт (квантова)

Тумблер, фізичний еквівалент одного біта

Біт (англ. bit, переклад: шматочок) — мінімальна одиниця кількості інформації, яка дорівнює одному двійковому розряду, який може бути рівним одному з двох значень/станів (0 або 1), застосовуваних для представлення даних у двійковій системі числення. Англійською двійковий знак звучить як binary digit. Скорочено виходить bit (біт). Число бітів пам'яті ЕОМ визначається максимальною кількістю двійкових цифр, які в ній вміщуються. Число бітів даних — це кількість двійкових розрядів, в яких вони записані.

Біт може бути інтерпретований як логічне значення (істина/хиба), знак числа (+/-), значення тригеру (ввімкнено/вимкнено), тощо. Яке саме значення інтерпретувати як 1, а яке — як 0 — результат домовленності, і іноді навіть в одній программі деяке значення може інтерпретуватися по різному.

У теорії інформації бітом називається змінна, що може з однаковою ймовірністю приймати значення 1 або 0, або кількість інформації, що отримується, коли значення такої змінної стає відомим.[1]

У квантових комп'ютерах, квантова система, що може існувати як суперпозиція звичайних бітів, називається кубітом.

Історія[ред.ред. код]

Кожна з восьми триграмм може бути описана як рядок з трьох бітів

У роботі Лейбніца «Explanation of binary arithmetic» 1703 року, була представлена двійкова система обчислення і правила роботи з нею.[2] У цій роботі Лейбніц посилався на китайського філософа Фу-сі, що за легендою, винайшов триграмми.

Кодування даних з допомогою бітів, вперше було використане у ткацьких станках Бушона і Фалькона у 1720-х, і було реалізовано у формі картонок з отворами.[3][4]. В подальшому ця технологія розвивалася і була адаптована не тільки для станків, але і для інших пристроїв. Іх використовували і своїх механізмах Жаккар, Корсаков, Беббідж, Холлеріт, і, врешті решт, такі картонки стали дуже вживаними у формі перфокарт, що використовувалися до 80-х років 20-го століття. Також розвитком ідеї перфокарти стали перфострічки що використовувалися для запису великої кількості інформації.

Всі ці носії даних концептуально мають схожу будову — це масив бітів (позицій на папері), кожен з яких заповнюється окремо, і може приймати значення 1 або 0 (проколото/не проколото).

Сучасними нащадками цих носіїв даних можна вважати штрих-коди і QR-коди.

Іншим способом використання двійкового кодування була азбука Морзе, запропонована їм у 1838 році, де кожному символу був поставлений у відповідник набір точок і тире різної довжини.

Перші програмовані комп'ютери, розроблені Конрадом Цузе у період з 1934 по 1943 рік (це обчислювальні машини Z1, Z2, Z3 і Z4), зберігали і оброблювали дані саме в бітовому вигляді. Сам Цузе називав біт «так/ні статусом».[5][6]

Термін «біт» був запропонований Клодом Шенноном у 1948 році у роботі «Математична теорія зв'язку». Сам Шеннон приписував цей термін Джону Тьюкі, який придумав його під час роботи у Bell Labs, 9 січня 1947 року, скоротивши словосполучення «binary digit» до простого «bit». Цікаво, що ще у 1936 році Венівар Буш писав про шматочки (bits) інформації, що можуть розміщуватися на перфокарті.[7].

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

Фізична реалізація[ред.ред. код]

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

З точки зору надійності, найчастіше використовуються два типа реалізації біта — однофазний і двофазний. Однофазна реалізація передбачає 1 вихід, наявність на якому сигнала інтерпретується як 1. Двохфазна реалізація має два виходи — при цьому, одиницею вважається активність на першому виході, і її відсутність на другому, а нулем — навпаки, активність лише на другому. При цьому, якщо обидва виходи є активними або неактивними, то сигнал розуміється як помилковий. Такі реалізації є дорожчими, але при цьому значно більш надійними.

Передача інформації

Для передачі даних дворівневі системи є менш зручними, бо при наявності хоча б невеликої десинхронізації передавача і приймача, якщо передається достатньо довгий послідовний ряд одиниць (або нулів), то система може збитися, (тобто, наприклад, ряд з 50 нулів може бути прийнятий за ряд з 51 нуля, якщо електромагнітні завади, що діють на лінію призводять до деформації сигналу більш ніж на 2 %)[9], тому для них використовують більш складне кодування, наприклад, одиниця виражається сигналом деякої більш складної форми, а нуль — сигналом іншої форми. Такі коди називають кодами з самосинхронізацією. Прикладом такого кодування є манчестерський код.

Теорія інформації[ред.ред. код]

У теорії інформації, кількість інформації тісно пов'язана з поняттям інформаційної ентропії.

Загалом можна сказати, що якщо в нас є деяка система, що може приймати різні значення 1, 2, …, n, з вірогідностями , то загальна кількість інформації, що можна передати за допомогою такої системи дорівнює

біт.

У випадку, якщо всі вірогідності є рівними (наприклад, для алфавіту, всі літери в повідомленнях, написаних на якому, зустрічаються з рівною частотою), для обчислення може використовуватися формула Хартлі:

де N — кількість усіх можливих повідомлень, m — кількість літер алфавіту, а n — довжина повідомленя. Наприклад, у ДНК, алфавіт якого складається з чотирьох літер-нуклеотидів, кожна з них несе у собі log2 4 = 2 біти інформації.[10]

Іноді в для вимірювання інформаційної ентропії замість біта використовується еквівалентна йому одиниця шеннон.

Біти у програмуванні[ред.ред. код]

Бітові масиви[ред.ред. код]

Докладніше: Бітова мапа

Хоча зазвичай інформація у пам'яті комп'ютера зберігається у вигляді байтів, у деяких випадках зручніше зберігати її безпосередньо у вигляді бітового масива. Такі масиви використовуються у файлових системах, для відслідковування зайнятих кластерів пам'яті, у фільтрі Блума, у деяких реалізаціях або для максимально компактної архівації даних, усюди, де це важливо. Для деяких шахматних програм, в тому числі таких сильних як Houdini і Stockfish, для представлення шахівниці використовується спеціальна структура даних, що називається Bitboard (тобто, бітова дошка). У мовах програмування, тип даних для збереження бітових масивів називається бітовим полем.

Бітові операції[ред.ред. код]

Докладніше: Бітові операції

У програмуванні бітовими називаються операції, що проводяться над ланцюжками бітів. Зазвичай це можуть бути логічні операції, або зсуви. У випадку логічних операцій, для двох масивів бітів однакової довжини(або одного масива, якщо операція унарна, як «НЕ»), деяка операція застосовується до кожної послідовної пари бітів, і результат записується у відповідне поле масиву-відповіді. Наприклад:

АБО 0011
0101
0111

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

Арифметико-логічний пристрій процессора, як найбільш низькорівневий апарат для обчислень, зазвичай вміє робити саме бітові операції.

Спеціальні біти[ред.ред. код]

Службові біти[ред.ред. код]

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

Біти парності[ред.ред. код]

Докладніше: Біт парності

Для перевірки цілісності даних, в кінець кожного байта даних може додаватись біт, що позначає, чи є кількість одиниць в бітовому записі числа парною. Таким чином, біт парності є простою реалізацією контрольної суми. Завдяки такому біту, якщо при передачі один біт буде пошкоджено або змінено, це буде одразу помічено. Більш просунутими варіантами, що використовують більшу кількість додаткових бітів є код Гемінга або Код Ріда-Соломона, що дозволяють не тільки помічати, а й виправляти поодинокі помилки.[12]

Стартовий та стоповий біт[ред.ред. код]

Використовуються для асинхронного зв'язку для того, щоб система могла розуміти, де закінчується один байт і починається інший. Наприклад, якщо в послідовному кабелі, коли інформація не передається, сигнал виглядає як ряд одиниць, то, перед тим як почати передавати дані, передавач спочатку передає один символ «0», що є для приймача сигналом, що з наступного біту починається передача даних.[13]

Кратні та некратні одиниці[ред.ред. код]

Префікси, введені Міжнародною електротехнічною комісією для круглих двійкових чисел
Префікс Скорочення: -біт, -байт Значення
кібі Кібіт, КіБ 210 = 1024
мебі Мебіт, МіБ 220 = 1 048 576
гібі Гібіт, ГіБ 230 = 1 073 741 824
тебі Тебіт, ТіБ 240 = 1 099 511 627 776
пебі Пебіт, ПіБ 250 = 1 125 899 906 842 624
ексбі Еібіт, ЕіБ 260 = 1 152 921 504 606 846 976

Існує плутанина, пов'язана з кратними приставками (кіло-, мега-, гіга- і т. д.), через те, що різні стандарти по різному встановлюють іхнє значення для одиниць виміру інформації.

У 1999 році Міжнародна електротехнічна комісія постановила розуміти ці приставки як десяткові, тобто 1 кілобіт = 1000 біт, а для одиниць, заснованих на ступенях двійки запропонувала нові назви — кібібіт, мебібіт, гібібіт і т. д. як вказано таблиці: Практично всі офіційні стандарти користуються цим визначенням, наприклад, максимальна пропускна здатність Ethernet специфікації 10BASE5 дорівнює 10*106 біт/с. Так само вказується пропускна здатність на старих модемах.

З іншого боку, стандарти JEDEC визначають приставки кіло-, мега- і більші, як ступені двійки — тобто 1 кілобіт є рівним 1024 бітам. Через це деякі провайдери і програми використовують саме такий спосіб підрахунку. Відносна різниця між цими двома підходами зростає для більших одиниць — вона дорівнює 2 % для кілобайту але вже 7 % для гігабайту.

Також варто зазначити, що, в будь якому з варіантів, біт — не скорочується, тобто, записати кілобіт як кб — не можна.

Зазвичай у бітах(в секунду) вимірюється швидкість передачі даних або бітрейт мультимедіа файлів (кількість біт, що використовуються для запису однієї секунди аудіо або відео), тоді як ємність пам'яті комп'ютера і розміри файлів частіше вимірюються у байтах (а також кіло-, мега- і гігабайтах). Рідше може використовуватися нібл — половина байта, тобто 4 біти.

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

Натуральною ж одиницею виміру інформації є нат, що є кількістю інформації, що отримується, коли відбувається подія, ймовірність якої 1/е.

Чисельно ці одиниці дорівнюють:

  • нат — ln2 ≈ 1,44… біт
  • тріт — log23 ≈ 1,58… біт
  • децит — log210 ≈ 3,32… біт

У комп'ютерах інформація зазвичай зберігається у вигляді машинних слів, розмір яких залежить від розрядності регістрів процессора і шини даних. Довжина машинного слова може коливатись від 4 до 64 бітів для різних систем і платформ, але для кожної конкретної машини «машинне слово» є сталою величиною. Для 32-бітних процесорів архітектури x86, машинним словом традиційно вважається 16-біт, хоча в реальності воно дорівнює 32 бітам.

Позначення

Згідно класифікатора системи позначень Державного комітету стандартизації, метрології і сертифікації України, біт позначається просто словом біт, тобто, не скорочується.[14] Кілобіт і мегабіт скорочуються до кбіт і Мбіт.

В англійській мові біт зазвичай теж не скорочується (рекомендовано стандартом IEC 80000-13:2008). Проте стандарт IEEE 1541—2002 рекомендує скорочувати його до b.

Зв'язок з іншими фізичними величинами[ред.ред. код]

Згідно принципу Ландауера, стирання одного біта інформації, незалежно від способу його зберігання, супроводжується виділенням 2,7×10−21 Дж тепла.

Ліміт Бекенштейна визначає, яка максимальна кількість інформації може бути збережена у фіксованому об'ємі простору, і дорівнює 2,6×1043mR біт, де R — радіус сфери, що включає в себе систему, а m — масса системи. Цей ліміт чисельно дорівнює ентропії чорної діри відповідних розмірів.[15]

Ліміт Бремерманна визначає максимальну швидкість, з якою деяка система може вести обчислення. Він дорівнює c2/h ≈ 1,36 × 1050 біт/с на кілограм маси системи.[16]

Примітки[ред.ред. код]

  1. [1]
  2. [2]
  3. Ткацкий станок, прадедушка компьютеров
  4. Техника — молодёжи 1934-11, страница 53
  5. Детальний опис Z1(англ.)
  6. Детальний опис Z3
  7. Bush, Vannevar (1936). Instrumental analysis. Bulletin of the American Mathematical Society 42 (10). с. 649–669. doi:10.1090/S0002-9904-1936-06390-1. 
  8. [3]
  9. В. Олифер, Н. Олифер, Компьютерные сети, 4-е издание
  10. [4]
  11. [5]
  12. [6]
  13. [7]
  14. [8]
  15. [9]
  16. [10]

Джерела[ред.ред. код]