Біт в Байт

Конвертувати з Біт в Байт. Введіть суму, яку потрібно перетворити і натисніть кнопку перетворити (↻) .

1 Біт = 0.125 Байт10 Біт = 1.25 Байт2500 Біт = 312.5 Байт
2 Біт = 0.25 Байт20 Біт = 2.5 Байт5000 Біт = 625 Байт
3 Біт = 0.375 Байт30 Біт = 3.75 Байт10000 Біт = 1250 Байт
4 Біт = 0.5 Байт40 Біт = 5 Байт25000 Біт = 3125 Байт
5 Біт = 0.625 Байт50 Біт = 6.25 Байт50000 Біт = 6250 Байт
6 Біт = 0.75 Байт100 Біт = 12.5 Байт100000 Біт = 12500 Байт
7 Біт = 0.875 Байт250 Біт = 31.25 Байт250000 Біт = 31250 Байт
8 Біт = 1 Байт500 Біт = 62.5 Байт500000 Біт = 62500 Байт
9 Біт = 1.125 Байт1000 Біт = 125 Байт1000000 Біт = 125000 Байт

Вбудувати цей конвертер у сторінки або блоґу, шляхом копіювання наступний код:

Голоси з минулого — чому 1 байт має 8 біт?

Розслідування — чому байт складається з восьми біт, а не 4 чи 6?

Не байтом єдиним

Спочатку невелике уточнення — байти, тобто, октети (8-розрядні одиниці) насправді не є фундаментальним елементом у сучасних комп’ютерних архітектурах. Принаймні, не більш фундаментальні, ніж інші степені двійки — 2, 4, 16, 32, 64, 128 тощо. Октети були основною одиницею для 8-розрядних процесорів (звідси й назва!), але сучасні архітектури зазвичай працюють із більшими розрядами.

Наприклад, найпоширеніша сьогодні комп’ютерна архітектура x86_64 має 64-розрядні цілі регістри та 80-розрядні регістри з плаваючою комою. Оперативна пам’ять читається та записується 64-розрядними фрагментами, а процесор використовує трохи магії, щоб створити вигляд, що ви можете адресувати окремі 8-бітні байти.

Для старих архітектур «байт» вказував на розмір шини даних, причому існувало багато різних розмірів шини (4, 5, 6, 8, 12 тощо).

З 1993 року довжину байта визначено як 8 біт, щоб мати стандартизовану одиницю СІ для розміру даних. Таким чином, значення «байт» змінилося з архітектурно-залежної одиниці на архітектурно-незалежну стандартизовану одиницю.

Отже, сьогодні байти є стандартною одиницею для адресації та кількісної оцінки даних, але не дуже фундаментальною.

Спочатку було слово

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

Пам’ять комп’ютерів в той час була структурована як безперервна послідовність бітів, які можуть бути адресовані, починаючи з будь-якого місця, або як послідовність слів.

У 1950-х роках виробники випробували різні види розмірів слів, був навіть принаймні один 14-розрядний комп’ютер масового виробництва — комп’ютери використовували будь-який зручний розмір слова, навіть такі, які на сьогодні здаються божевільними, наприклад 37 біт. Якби вашій ракеті була потрібна 19-бітна точність, щоб вразити ціль, ви б використовували 19-бітне слово. Розміри слів могли бути довжиною у 6, 8, 12, 13, 16, 17, 18, 19, 20, 22, 24, 26, 33, 37, 41, 45, 48, 50 і 54 біт, але незабаром стало звичайним використовувати розміри слів, кратні 6 (як правило, 12, 18 або 36 біт).

Спочатку байт мав довжину у 6 біт (до 1964 року) — це було наслідком шестирозрядного кодування текстових символів (вам потрібно щонайменше шість, щоб закодувати всі латинські літери та цифри) та використанням накопичувачів на магнітній стрічці, які мали стандарт, який використовує 7 паралельних доріжок (6 доріжок для даних і 1 доріжка для паритету), щоб читати або записувати один 6-бітний фрагмент за раз.

Термін «байт» почав вживатися ще у 1950-х роках для позначення адресних блоків пам’яті в комп’ютері IBM 7030 Stretch. Розмір байта був змінним, вказувався в інструкції. Слово «байт» є всього лише спотвореним записом слова «bite» ( відкушений шматок, читається як “байт”), і записувалося як «byte», щоб уникнути випадкового скорочення до «bit».

Інші перші комп’ютери працювали з 4-бітними байтами, 6-бітними байтами, 7-бітними байтами залежно від розміру використовуваного набору символів і вибору розробника обладнання:

  • мейнфрейми Cyber 180 використовували 6-бітні байти;
  • комп’ютери серії Univac 1100 / 2200 використовували 36-бітний розмір слова;
  • PDP-8 була 12-розрядною машиною.
  • Радянські мейнфрейми БЭСМ були шестибітними.

Надзвичайно популярний мейнфрейм IBM System/360 використовував 8-бітний байт, що допомогло підвищити популярність 8-бітового коду. Отже проблема не в процесорі чи адресації пам’яті, а в кодуванні символів.

До речі, приблизно в той же час AT&T почала впроваджувати 8-розрядну μ−систему кодування для передачі звуку в цифровому вигляді по його лініях, що також зробило 8 біт зручним розміром передачі даних для проходження по лініях AT&T.

Як помістити алфавіт в один байт?

Передача даних спочатку була передачею повідомлень. Семюел Морзе винайшов спосіб передавати повідомлення за допомогою послідовності електричних сигналів, які кодують літери та цифри. «Точки-тире» азбуки Морзе вимагали певних знань — повідомлення необхідно було закодувати, «відстукавши» телеграфним ключем послідовність точок і тире, а на приймальній стороні — розшифрувати.

Все було складно до появи на сцені Еміля Бодо з його телеграфом, який дозволяв друкувати повідомлення. Повідомлення вводилось спеціальною п’ятиклавішною клавіатурою, натискання клавіші чи відсутність натискання відповідало передаванню чи непередаванню одного символа в 5-бітному коді. Приймальний пристрій декодував отримані символи і друкував їх на телеграфній стрічці. Конструкція була настільки ефективною, що апарати Бодо використовували до 1950-х років.

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

Використання 5 розрядів дозволяло закодувати 32 (2⁵) символи. Цього було достатньо для кодування латинської абетки, але не цифр і розділових знаків. Бодо використав спеціальні коди, що дозволяли перемикання між літерами та іншими символами. Його код забезпечував передавання 57-ми символів (включно з пропуском) та команду видалення попереднього символу.

У першій половині ХХ ст. код Бодо було стандартизовано Міжнародним консультаційним комітетом із телеграфії під назвою Міжнародний телеграфний алфавіт № 1 (International Telegraph Alphabet № 1, ITA1). Код Бодо став першою успішною реалізацією кодування символів двійковими послідовностями фіксованої довжини, прототипом сучасних систем кодів, таких як ASCII, KOI-8, EBCDIC, Unicode.

Перші комп’ютери працювали з 5-бітним кодуванням Бодо — це дозволяло використовувати в якості пристроїв виведення інформації навіть існуючі телеграфні апарати, але після цього досить багато машин перейшли на 6-бітні символи.

ASCII

В кінці 1950-их років постала проблема через відсутність стандарту кодування для телетайпів, які дозволяли передавати та друкувати текстові повідомлення, що дозволяло цифровим пристроям спілкуватися один з одним, а також обробляти, зберігати та передавати символьно-орієнтовану інформацію, наприклад письмову мову. Кожен університет мав власну систему кодування для телетайпів, причому ці системи були несумісними між собою, тож Федеральна комісія по електрозв’язку вирішила стандартизувати систему для кодування телетайпних повідомлень.

До того, як був розроблений стандарт ASCII, використовувані кодування включали 26 літерних символів, 10 цифрових цифр і від 11 до 25 спеціальних графічних символів. Щоб мати можливість передавати їх мережами зв’язку, Міжнародний консультативний комітет з телефонії та телеграфії (CCITT) запровадив Міжнародний телеграфний алфавіт № 2 (ITA2), який базувався на 5-бітному телеграфному коді Еміля Бодо 1870 року. Розширення його до 6 біт давало можливість кодувати 64 символи, але це вже не задовольняло зростаючі потреби.

У 1963 році телекомунікаційна галузь, яка дедалі більше відчувала обмеження 6-бітного кодування, прийняла стандарт ASCII. Новий стандарт використовував 7 біт на символ і необов’язковий восьмий для паритету.

Спочатку обговорювалась можливість функції «зсуву» (як у ITA2), яка дозволила б більше ніж 64 кодам бути представлені шестибітним кодом. У зміщеному коді деякі коди символів визначають вибір між параметрами для наступних кодів символів. Він дозволяє компактне кодування, але є менш надійним для передачі даних, оскільки помилка під час передачі коду зсуву зазвичай робить довгу частину передачі нечитабельною. Комітет стандартів вирішив відмовитися від «зсуву», тому ASCII вимагав принаймні семибітний код.

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

ASCII вперше було використано у 1963 році як семибітний код телетайпу для мережі TWX (TeletypeWriter eXchange) компанії American Telephone & Telegraph(AT&T).

11 березня 1968 року президент США Ліндон Б. Джонсон наказав, щоб усі комп’ютери, придбані федеральним урядом Сполучених Штатів, підтримували ASCII, заявивши:[

Я також схвалив рекомендації міністра торгівлі [ Лютера Х. Ходжеса ] щодо стандартів для запису стандартного коду для обміну інформацією на магнітних і паперових стрічках, коли вони використовуються в комп’ютерних операціях. Усі комп’ютери та конфігурації пов’язаного обладнання, внесені до інвентаризації Федерального уряду 1 липня 1969 року та після цієї дати, повинні мати можливість використовувати стандартний код для обміну інформацією та формати, передбачені стандартами магнітної та паперової стрічок, коли використовуються ці носії.

ASCII визначив кодування 7-бітного набору символів. Це було достатньо добре для багатьох застосувань протягом тривалого часу, а також лягло в основу більшості нових наборів символів (ISO 646, ISO 8859, Unicode, ISO 10646 тощо).

ASCII був найпоширенішим стандартом кодуванням символів у Всесвітній павутині до грудня 2007 року, коли його було замінено кодуванням UTF-8, причому UTF-8 зворотно сумісний з ASCII.

Хоча IBM була головним прихильником комітету зі стандартизації ASCII, у компанії не було часу підготувати для System/360 периферійні пристрої, які б підтримували кодування ASCII, тому компанія зупинилася на кодуванні EBCDIC, яке було розроблено у 1963–1964 роках компанією IBM, як розширення існуючого двійково-десяткового коду (BCD) Interchange Code, або BCDIC , який сам по собі був розроблений як ефективний засіб кодування двох зон і чисел на перфокартах на шість бітів.

EBCDIC (англ. Extended Binary Coded Decimal Interchange Code — розширений двійково-десятковий код обміну інформацією) — стандартний восьмибітний код.

EBCDIC кодує літери латинського алфавіту, арабські цифри, деякі знаки пунктуації та керуючі символи. Існувало щонайменше шість версій EBCDIC, які були несумісні між собою. В СРСР клонували IBM System/360, створивши машини серії ЄС ЕОМ.

Завдяки широкому поширенню IBM System/360 прийняті у ній 8-бітові символи і 8-бітний байт як мінімально адресована комірка пам’яті стали стандартом для всієї комп’ютерної техніки. Також IBM System/360 була першою 32-розрядною комп’ютерною системою.

Шістнадцяткова система числення, що широко застосовувалася в документації IBM System/360, практично витіснила вісімкову, що раніше домінувала.

У наші дні текст зазвичай зберігається в кодуваннях зі змінною шириною, наприклад UTF-8, а з появою Unicode твердження, що «один байт дорівнює одному символу» давно залишилося в минулому. Сьогодні байт є просто стандартом з історичних причин.

З метою захисту національної безпеки

На початку 1955 Ліверморській радіаційній лабораторії Каліфорнійського університету знадобилася нова обчислювальна система, яку запропонували виготовити фірми IBM та UNIVAC. Згідно з оцінкою директора підрозділу електронних машин обробки даних IBM Катберта Хьорда (Cuthbert Hurd), така система повинна була коштувати приблизно 2,5 мільйона доларів США і мати продуктивність від одного до двох MIPS.

Працюючи над проектною заявкою, IBM не змогла вкластися у запропоновані терміни, тож у травні 1955 року було оголошено, що комп’ютер LARC (Livermore Automatic Research Computer, Ліверморський автоматичний дослідницький обчислювач) виготовить компанія UNIVAC.

Хоча IBM програла тендер на створення комп’ютера для Ліверморської лабораторії, але змогла виграти інший, на створення комп’ютера для Лос-Аламоської національної лабораторії, пообіцявши, що його швидкодія «принаймні в 100 разів перевищить продуктивність IBM 704» (приблизно 4 MIPS). Постачання було заплановано на 1960 рік, але фактично відбулося 1961 року.

У січні 1956 року проєкт Stretch стартував офіційно, IBM 7030 став першим суперкомп’ютером IBM, побудованим на транзисторах. Комп’ютер створювався для військових цілей, його розробка фінансувалася із федерального бюджету.

Під час проєктування виявилося необхідно знизити тактову частоту, внаслідок чого стало очевидним, що Stretch не зможе досягти розрахункової продуктивності. Тим не менш, очікувалося, що продуктивність від 60 до 100 разів перевищить продуктивність IBM 704. У 1961 році фактичні випробування показали, що продуктивність IBM 7030 всього в 30 разів вище, ніж IBM 704 (близько 1,2 MIPS). Через те, що комп’ютер не досяг оголошених параметрів, це викликало відсутність інтересу до нього з боку потенційних покупців, тож у травні 1961 року президент IBM Томас Вотсон-молодший оголосив про зниження ціни на 7030 з 13,5 мільйонів доларів США до 7,78 мільйона доларів для всіх клієнтів, що підписали контракти, і негайне припинення подальших продажів.

Незважаючи на те, що Stretch не досяг заявленого рівня продуктивності, він став основою для багатьох архітектурних рішень комерційно надзвичайно успішної системи IBM System/360, анонсованої в 1964 році. 7030 був найшвидшим комп’ютером у світі з 1961 до введення в дію першого суперкомп’ютера CDC 6600 в 1964 році.

Також IBM зобов’язалася розробити спеціалізовану версію для Агентства національної безпеки (АНБ) — спеціалізована версія IBM Stretch, названа IBM 7950 Harvest була поставлена АНБ в 1962 році. Цей комп’ютер було створено в єдиному екземплярі і пропрацював він до 1976 року, основним призначенням Harvest був криптоаналіз та швидкий пошук слів за базами даних.

Тести АНБ показали, що Harvest був потужнішим за найкращі комерційні машини в 50–200 разів залежно від завдання. При здатності опрацьовувати 3 мільйони символів за хвилину Harvest міг за хвилини зробити те, на що його попередники витрачали тижні. Наприклад, у 1968 році Harvest витратив 3 години 50 хвилин на пошук 7 тисяч шуканих слів і фраз у семи мільйонах текстів радіоперехоплень, що еквівалентно обробці 30 тисяч текстів перехоплень за хвилину. Цей комп’ютер допомагав АНБ успішно зламувати шифри СРСР у 1970-і роки

Розрядність машинного слова ЕОМ IBM 7030 була 64 біти, розрядність шини адреси — 18 біт. І що цікаво — під час розробки з’явився термін «байти», для позначення порції бітів для кодування алфавітно-цифрових символів. Вони були змінної довжини — від 1 до 8 біт.

Зверніть увагу, що 8 біт надають більшу швидкість опрацьовування інформації, ніж 6 біт, які були «стандартом» IBM в 50-их роках ХХ ст. — на 33%

2 — не 10 або таємниці BCD

Так чому ж у байті 8 біт, а не 10 чи 12?

Причиною була корпорація IBM та кодування чисел у двійково-десятковому форматі.

Двійкове числення, яке було розроблено ще Ньютоном і Лейбніцем, та вперше використане в машині Z1 Конрада Цузе, є досить доречним для електронних обчислювальних машин, які розуміють єдину мову — мову електричних сигналів, струм увімкнено — «1», струм вимкнено — «0» (може бути і навпаки). Операції двійкового (побітового) додавання/віднімання реалізуються дуже просто, але «диявол ховається» в деталях — як користувачу зрозуміти, що двійкове число «11110100001010100101» це десяткове 1 000 101?

І це в той час, коли самим модерновим електронним пристроєм був транзистор, який прийшов на заміну електронним лампам? Інженери знайшли вихід, використавши для чисел двійково-десяткове кодування (BCD), ідея якого була дуже простою — кожні чотири біти використовували для кодування однієї цифри 24 = 16 , тобто можна було закодувати 10 цифр (0–9) , а інші 6 комбінацій вважались забороненими (надалі використали і їх — для шістнадцяткового кодування).

Зверніть увагу, що індикатор ЕОМ Burroughs B205 подає інформацію у форматі BCD — індикатори мають групи по 4 лампочки.

Наприклад, якщо ви хочете закодувати число 1234, у BCD це буде так: