Біт

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

біт.

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

де:

  • N — кількість усіх можливих повідомлень
  • m — кількість літер алфавіту
  • n — довжина повідомлення.

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

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

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

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

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

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

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

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

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

A 0011
B 0101
АБО (OR) 0111
І (AND) 0001

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

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

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

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

Іноді при передаванні або зберіганні інформації, до бітів, кодуючих дані додаються біти, що несуть інформацію про сам канал зв'язку або призначені для синхронізації даних. При передаванні в таких бітах може передаватися інформація щодо рівня інтерференції, потужності передавача, або інших умов, що не стосуються безпосередньо даних що передаються[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. Архівована копія. Архів оригіналу за 19 вересня 2016. Процитовано 16 вересня 2016.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
  2. Explanation of binary arithmetic [Архівовано 11 лютого 2021 у Wayback Machine.](англ.)
  3. Ткацкий станок, прадедушка компьютеров. Архів оригіналу за 13 листопада 2017. Процитовано 16 вересня 2016.
  4. Техника — молодёжи 1934-11, страница 53. Архів оригіналу за 17 вересня 2016. Процитовано 16 вересня 2016.
  5. Детальний опис Z1 [Архівовано 14 жовтня 2016 у Wayback Machine.](англ.)
  6. Детальний опис Z3. Архів оригіналу за 16 жовтня 2016. Процитовано 4 жовтня 2016.
  7. Bush, Vannevar (1936). Instrumental analysis. Bulletin of the American Mathematical Society. 42 (10): 649—669. doi:10.1090/S0002-9904-1936-06390-1. Архів оригіналу за 6 жовтня 2014. Процитовано 19 вересня 2016.
  8. Архівована копія. Архів оригіналу за 19 вересня 2016. Процитовано 16 вересня 2016.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
  9. В. Олифер, Н. Олифер, Компьютерные сети, 4-е издание
  10. Архівована копія. Архів оригіналу за 19 травня 2017. Процитовано 19 вересня 2016.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
  11. Архівована копія. Архів оригіналу за 15 травня 2021. Процитовано 19 вересня 2016.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
  12. Архівована копія. Архів оригіналу за 19 вересня 2016. Процитовано 19 вересня 2016.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
  13. Старт-бит, стоп-бит и бит метки : [рос.] // IBM Knowlege center.
  14. Класифікатор системи позначень одиниць вимірювання та обліку ДК 011-96. Архів оригіналу за 1 липня 2019. Процитовано 1 липня 2019.
  15. Архівована копія (PDF). Архів оригіналу (PDF) за 23 травня 2010. Процитовано 19 вересня 2016.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
  16. Архівована копія (PDF). Архів оригіналу (PDF) за 5 березня 2016. Процитовано 19 вересня 2016.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)

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