Біт

Матеріал з Вікіпедії — вільної енциклопедії.
Jump to navigation Jump to search
Основні одиниці
вимірювання
інформації[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 році Венівар Буш писав про шматочки (Шаблон:Lnag-en) інформації, що можуть розміщуватися на перфокарті.[7].

Проте, комп'ютери до 50-х років продовжували використовувати складні пристрої (декатрони), для зберігання і оперування інформацією у десятковому вигляді[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]

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

Стартовий та стоповий службові біти використовуються в асинхронному послідовному зв'язку[en] для того, щоб система могла розуміти, де закінчується один байт і починається інший. Наприклад, якщо при відсутності даних сигнал в послідовному кабелі виглядає як ряд одиниць, то перед початком передавання власне даних передавач спершу передає один символ «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. Старт-бит, стоп-бит и бит метки : [рос.] // IBM Knowlege center.
  14. [7]
  15. [8]
  16. [9]

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