Біт
Основні одиниці вимірювання інформації[en] |
---|
біт (двійкова) |
Біт (англ. bit, переклад: шматочок) — мінімальна одиниця кількості інформації, яка дорівнює одному двійковому розряду, який може бути рівним одному з двох значень/станів (0 або 1), застосовуваних для представлення даних у двійковій системі числення. Англійською двійковий знак звучить як binary digit. Скорочено виходить bit (біт). Число бітів пам'яті ЕОМ визначається максимальною кількістю двійкових цифр, які в ній вміщуються. Число бітів даних — це кількість двійкових розрядів, в яких вони записані.
Біт може бути інтерпретований як логічне значення (істина/хиба), знак числа (+/-), значення тригеру (ввімкнено/вимкнено), тощо. Яке саме значення інтерпретувати як 1, а яке — як 0 — результат домовленості, й іноді навіть в одній програмі деяке значення може інтерпретуватися по різному.
У теорії інформації бітом називається змінна, що може з однаковою ймовірністю приймати значення 1 або 0, або кількість інформації, що отримується, коли значення такої змінної стає відомим.[1]
У квантових комп'ютерах, квантова система, що може існувати як суперпозиція звичайних бітів, називається кубітом.
Зміст
1 Історія
2 Фізична реалізація
3 Теорія інформації
4 Біти у програмуванні
4.1 Бітові масиви
4.2 Бітові операції
5 Спеціальні біти
5.1 Службові біти
5.2 Біти парності
5.3 Стартовий та стоповий біт
6 Кратні та некратні одиниці
7 Зв'язок з іншими фізичними величинами
8 Примітки
9 Джерела
Історія |
У роботі Лейбніца «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, з імовірностями p1,p2,...,pndisplaystyle p_1,p_2,...,p_n, то загальна кількість інформації, яку можна передати за допомогою такої системи, дорівнює
−∑i=1np(i)log2p(i).displaystyle -sum _i=1^np(i)log _2p(i). біт.
У випадку, якщо всі ймовірності є рівними (наприклад, для алфавіту, всі літери в повідомленнях, написаних на якому, зустрічаються з рівною частотою), для обчислення може використовуватися Формула Гартлі:
- I=log2N=log2mn=nlog2m,displaystyle I=log _2N=log_2m^n=nlog _2m,
де 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]
↑ [2]
↑ Ткацкий станок, прадедушка компьютеров
↑ Техника — молодёжи 1934-11, страница 53
↑ Детальний опис Z1(англ.)
↑ Детальний опис Z3
↑ Bush, Vannevar (1936). Instrumental analysis. Bulletin of the American Mathematical Society 42 (10): 649–669. doi:10.1090/S0002-9904-1936-06390-1.
↑ [3]
↑ В. Олифер, Н. Олифер, Компьютерные сети, 4-е издание
↑ [4]
↑ [5]
↑ [6]
↑ Старт-бит, стоп-бит и бит метки : [рос.] // IBM Knowlege center.
↑ [7]
↑ [8]
↑ [9]
Джерела |
- УРЕ
|
|