- Не слід плутати з булевою функцією.
Бітова операція в програмуванні — деякі операції над ланцюжками бітів. У програмуванні, як правило, розглядаються лише деякі види цих операцій: логічні побітові операції та бітові зсуви. Бітові операції застосовуються в мовах програмування та цифровій техніці, вивчаються в дискретній математиці.
Побітові логічні операції
Ряд джерел за мовами низького рівня називає побітові логічні операції просто логічними, але в термінології програмування на мовах високого рівня в назвах бітових операцій присутні прикметники бітовий, побітовий (наприклад: «побітове логічне І», воно ж «побітове множення»), порозрядний. У деяких мовах програмування назви операторів, відповідних логічним та побітовим логічним операціям, схожі. Крім того, мова програмування може допускати неявне приведення числового типу до логічного та навпаки. У таких мовах програмування необхідно уважно стежити за використанням логічних та побітових операцій, перемішування яких може призвести до помилок. Наприклад, в C++ результатом виразу «2 && 1» (логічне І) є булеве значення true, а результатом виразу «2 & 1» (побітове І) — ціле 0.
Побітове заперечення (NOT)
Побітове заперечення (або побітове НЕ, або доповнення) — це унарна операція, дія якої еквівалентна застосуванню логічного заперечення до кожного біту двійкового подання операнда. Іншими словами, на тій позиції, де в двійковому поданні операнда був 0, внаслідок буде 1, і, навпаки, де була 1, там буде 0.
Приклад:
НЕ | 01 |
10 |
Побітове І (AND)
Побітове І — це бінарна операція, дія якої еквівалентно застосування логічного І до кожної пари бітів, які стоять на однакових позиціях у двійкових уявленнях операндів. Іншими словами, якщо обидва відповідних біта операндів рівні 1, результуючий двійковий розряд дорівнює 1, якщо ж хоча б один біт з пари дорівнює 0, результуючий двійковий розряд дорівнює 0.
Приклад:
І | 0011 |
0101 | |
0001 |
Побітове АБО (OR)
Побітове АБО — це бінарна операція, дія якої еквівалентно застосування логічного АБО до кожної пари бітів, які стоять на однакових позиціях у двійкових уявленнях операндів. Іншими словами, якщо обидва відповідних біта операндів рівні 0, двійковий розряд результату дорівнює 0, якщо ж хоча б один біт з пари дорівнює 1, двійковий розряд результату дорівнює 1.
Приклад:
АБО | 0011 |
0101 | |
0111 |
Додавання за модулем два (XOR)
Додавання за модулем два (або двомісна операція виключне АБО) — це бінарна операція, результат дії якої дорівнює 1, якщо число складаємих одиничних бітів непарне, якщо ж їх число парне, то результат дорівнює 0.
Приклад:
Викл. АБО | 0011 |
0101 | |
0110 |
Перша назва операції обумовлена тим, що результат цієї операції відрізняється від результату «АБО» лише в одному з 4 випадків входу (1 випадок одночасної істинності аргументів «виключається»). Ще значення цієї логічної зв'язки передається союзом «або».
Друга назва — тим, що дійсно є складанням в кільці вирахувань за модулем два, з чого слідують деякі цікаві властивості. Наприклад, на відміну від вищеописаних «І» та «АБО», ця операція є оборотною, або інволютивною: . В комп'ютерній графіці «додавання по модулю два» застосовується при виведенні спрайтів на картинку — повторне її застосування прибирає спрайт з картинки. Завдяки інволютивності ця ж операція знайшла застосування в криптографії як найпростіша реалізація (шифру Вернама). «Додавання за модулем два» також може використовуватися для обміну двох змінних значеннями, використовуючи алгоритм обміну XOR.
Також ця операція може називатися «інверсією по масці», тобто у вихідного двійкового числа інвертуються біти, які збігаються з 1 в масці.
Інші побітові логічні операції
У поширених мовах програмування вбудованими засобами реалізуються лише чотири побітові логічні операції: І, АБО, НЕ і виключне АБО. Для завдання довільної побітовій логічної операції цілком достатньо перерахованих, і, більше того, як випливає з теорії булевих функцій, можна обмежитися ще меншим набором базових операцій. Є також мови програмування, де існує вбудована можливість виконати будь-яку бінарну логічну операцію побітово. Наприклад, в PL/I є вбудована функція BOOL, третій аргумент якої призначено для вказівки довільної логічної операції, яку необхідно побітово застосувати до перших двох аргументів.
Бітові зсуви
До бітових операцій також відносять бітові зсуви. При зсуві значення бітів копіюються в сусідні за напрямом зсуву. Розрізняють декілька видів зсувів — логічний, арифметичний і циклічний , залежно від обробки крайніх бітів.
Також розрізняють зсув ліворуч (в напрямку від молодшого біта до старшого) і праворуч (в напрямку від старшого біта до молодшого).
Логічний зсув
При логічному зсуві значення останнього біта за напрямом зсуву втрачається (копіюємо в біт перенесення), а перший набуває нульове значення.
Логічні зсуви на одиницю ліворуч та праворуч використовуються для множення та ділення на 2, відповідно. І на степінь двійки якщо зсув не на одиницю. Завдяки тому, що зсув займає менше тактів процесора ніж множення, його використовували замість множення чи ділення на степінь двійки. Але з сучасними оптимізованими компіляторами така діяльність небажана через можливість помилок.
Арифметичний зсув
Арифметичний зсув аналогічний логічному, але значення слова вважається знаковим числом, представленим в додатковому коді. Так, при правому зсуві старший біт зберігає своє значення. Лівий арифметичний зсув ідентичний логічному.
Циклічний зсув
При циклічному зсуві, значення останнього біта за напрямом зсуву копіюється в перший біт (і копіюється в біт переносу).
Також розрізняють циклічний зсув через біт переносу — при ньому перший біт за напрямом зсуву отримує значення з біта переносу, а значення останнього біта зсувається в біт переносу.
У мовах програмування
У наступній таблиці для деяких мов програмування наведено вбудовані оператори та функції, що реалізують побітові логічні операції.
Мова | НЕ | І | АБО | Викл. АБО | Зсув ліворуч | Зсув праворуч | Інші |
---|---|---|---|---|---|---|---|
C/, Java, C#, Ruby, Python | ~ | & | | | ^ | << | >> | |
JavaScript, | << | >>, >>> | |||||
Pascal, Delphi | not | and | or | xor | shl | shr | |
PL/I | INOT | IAND | IOR | IEOR | BOOL | ||
¬ | & | | | ¬ | ||||
Prolog | \ | /\ | \/ | ||||
Ocaml | lsl | lsr | |||||
Assembler | shl | shr | |||||
VHDL | sll | srl |
Термін бітова операція, часто використовується в області обчислень так званих швидких алгоритмів, які вивчають алгоритми обчислення заданої функції з заданою точністю з використанням як можна меншого числа бітових операцій.
Бітова операція в теорії алгоритмів запис знаків 0, 1, плюс, мінус, дужка; додавання, віднімання та множення двох бітів (числа записані в двійковій системі числення). Використовується для оцінки складності алгоритму.
Зв'язок з іншими науками
Бітові операції та математична логіка
Бітові операції дуже близькі (хоча і не тотожні) логічним зв'язкам в класичній логіці. Біт можна розглядати як логічне судження — його значеннями є 1 «істина» і 0 «брехня». При такій інтерпретації відомі в логіці зв'язки кон'юнкції, диз'юнкції, імплікації, заперечення та інші мають уявлення на мові бітів. І навпаки, бітові операції легко описуються мовою обчислення висловлювань.
Однак, зв'язкам математичної логіки більш відповідають логічні операції у тому числі в програмуванні, ніж власне бітові операції.
Узагальнення операцій на булеву алгебру
Замість поодиноких бітів ми можемо розглянути вектори з фіксованої кількості бітів (в програмуванні їх називають регістрами), наприклад, байти. У програмуванні регістри розглядають як двійкове розкладання цілого числа: , де N — кількість бітів у регістрі.
Тим не менш, ніщо не заважає розглядати ці регістри саме як бітові вектори та проводити булеві операції покомпонентно (біт номер k значення є результат операції від бітів номер k аргументів). речі, математично кажучи, булеві операції поширюються таким чином на довільну булеву алгебру. Таким чином ми отримуємо операції побітового І, АБО, НЕ, викл. АБО, тощо. Як арифметичні, дані операції не володіють хорошими властивостями за винятком побітового НЕ, яке для чисел в додатковому коді збігається з вирахуванням з-1 (~x ==-1-x
). Однак, вони дуже корисні в програмуванні.
2-адична інтерпретація
Ціле число, записане (в додатковому коді) в нескінченний (в бік додатних ступенів двійки) двійковий регістр є природним об'єктом для теорії p-адичних чисел при . Множина цілих 2-адичних чисел (тобто довільних нескінченних бітових послідовностей) може бути розглянуте як булева алгебра точно так само як і безліч значень бітового регістра кінцевої довжини. Всі перераховані вище бітові операції виявляються безперервними відображеннями. Хоча практичне програмування не має регістрів нескінченної довжини, це не заважає використовувати цей теоретичний факт в криптографії для створення швидкодійних алгоритмів шифрування.
Бітові операції як основа цифрової техніки
Бітові операції лежать в основі обробки цифрових сигналів. А саме, за допомогою них ми можемо з одного або декількох сигналів на вході отримати новий сигнал, який у свою чергу може бути поданий на вхід однієї або декільком такими операціями. Власне, саме бітові операції в поєднанні з запам'ятовувальними елементами (напр. тригерами) реалізують все багатство можливостей сучасної цифрової техніки.
Практичні застосування
З точки зору застосування окрема бітова операція мало цікава. Тому практичне застосування ґрунтується на способах комбінування різних бітових операцій, для реалізації більш складного обчислення. Можна відзначити два аспекти:
- збільшення розміру регістрів, в яких бітові операції виконуються не по одній, а одразу на безлічі 8, 16, 32, 64 бітах
- експериментальні пристрої, де узагальнюють бітові операції з двійкової системи, на трійчастий та інші системи числення (так наприклад, розроблена теорія роботи з четверичною системою (ДНК-комп'ютер), Так само робляться дослідження в області квантового комп'ютера).
Фізична реалізація бітових операцій
Реалізація бітових операцій може в принципі бути будь-який: механічної (в тому числі гідравлічної та пневматичної), хімічною, тепловою, електричної, магнітної та електромагнітної (діапазони — ІК, видимий оптичний, УФ і далі за зменшенням довжин хвиль), а також у вигляді комбінацій, наприклад, електромеханічної.
У першій половині XX століття до винаходу транзисторів застосовували електромеханічні реле та електронні лампи.
У пожежонебезпечних та вибухонебезпечних умовах досі застосовують пневматичні логічні пристрої (пневмоніка).
Найбільш поширені електронні реалізації бітових операцій за допомогою транзисторів, наприклад Резисторно-транзисторна логіка (РТЛ), діод-транзисторна логіка (ДТЛ), емітерний-пов'язана логіка (ЕСЛ), транзисторних-транзисторна логіка (ТТЛ), логіка, КМОН логіка і ін
Однією з причин, через яку базові (основні) логічні елементи будують на інвертора, а повторювачі є додатковими елементами, було те, що в електроніці інвертори (ОЕ) могутніше повторювачів (ОК). Але основною причиною є те, що два інвертора замінюють один повторювач, а на повторювачах інвертор не збудувати.
В квантових обчисленнях з перерахованих булевих операцій реалізуються лише НЕ і викл. АБО (з деякими застереженнями). Квантових аналогів І, АБО, тощо. не існує.
Схеми апаратної логіки
Результат операції АБО-НЕ або АБО від усіх бітів двійкового регістра перевіряє, чи дорівнює значення регістра нулю; те ж саме взяте від виходу викл. АБО двох регістрів перевіряє рівність їх значень між собою.
Бітові операції застосовуються в знакогенераторах та графічних адаптерах; особливо велика була їх роль в адаптері EGA в режимах з 16 кольорами — хитромудре поєднання апаратної логіки адаптера з логічними командами центрального процесора дозволяє розглядати EGA як перший в історії графічний прискорювач.
Використання в програмуванні
Завдяки реалізації в арифметичному логічному пристрої (АЛУ) процесора чималі їх реєстрові бітові операції апаратно доступні в . У більшості процесорів реалізовані як інструкції: регістрове НЕ; реєстрові двохаргументні І, АБО, викл. АБО; перевірка рівності нулю (див. вище); три типи бітових зрушень, а також циклічні бітові зрушення.
Регістрова операція І використовується для:
- перевірки біта на 0 або 1
- установки 0 у вказаний біт (скидання біта)
Регістрова операція АБО використовується:
- установки 1 у вказаний біт
Регістрова операція виключає АБО використовується для інвертування бітів регістра по масці Зрушення вліво/вправо використовується для множення/цілочисельного ділення на 2 і виділення окремих бітів.
Так, наприклад, в мережевих інтернет-технологіях операція І між значенням IP-адреси та значенням маски підмережі використовується для визначення належності цієї адреси до підмережі.
Див. також
Примітки
- Steele Jr, Guy. (PDF). MIT AI Lab. Архів оригіналу (PDF) за 6 грудня 2014. Процитовано 20 травня 2013.
- . Архів оригіналу за 29 вересня 2020. Процитовано 29 грудня 2017.
{{}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title () - Bitwise operators [ 18 листопада 2015 у Wayback Machine.] MDN
Ця стаття потребує додаткових для поліпшення її . (вересень 2016) |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Ne slid plutati z bulevoyu funkciyeyu Bitova operaciya v programuvanni deyaki operaciyi nad lancyuzhkami bitiv U programuvanni yak pravilo rozglyadayutsya lishe deyaki vidi cih operacij logichni pobitovi operaciyi ta bitovi zsuvi Bitovi operaciyi zastosovuyutsya v movah programuvannya ta cifrovij tehnici vivchayutsya v diskretnij matematici Pobitovi logichni operaciyiRyad dzherel za movami nizkogo rivnya nazivaye pobitovi logichni operaciyi prosto logichnimi ale v terminologiyi programuvannya na movah visokogo rivnya v nazvah bitovih operacij prisutni prikmetniki bitovij pobitovij napriklad pobitove logichne I vono zh pobitove mnozhennya porozryadnij U deyakih movah programuvannya nazvi operatoriv vidpovidnih logichnim ta pobitovim logichnim operaciyam shozhi Krim togo mova programuvannya mozhe dopuskati neyavne privedennya chislovogo tipu do logichnogo ta navpaki U takih movah programuvannya neobhidno uvazhno stezhiti za vikoristannyam logichnih ta pobitovih operacij peremishuvannya yakih mozhe prizvesti do pomilok Napriklad v C rezultatom virazu 2 amp amp 1 logichne I ye buleve znachennya true a rezultatom virazu 2 amp 1 pobitove I cile 0 Pobitove zaperechennya NOT Pobitove zaperechennya abo pobitove NE abo dopovnennya ce unarna operaciya diya yakoyi ekvivalentna zastosuvannyu logichnogo zaperechennya do kozhnogo bitu dvijkovogo podannya operanda Inshimi slovami na tij poziciyi de v dvijkovomu podanni operanda buv 0 vnaslidok bude 1 i navpaki de bula 1 tam bude 0 Priklad NE 01 10 Pobitove I AND Pobitove I ce binarna operaciya diya yakoyi ekvivalentno zastosuvannya logichnogo I do kozhnoyi pari bitiv yaki stoyat na odnakovih poziciyah u dvijkovih uyavlennyah operandiv Inshimi slovami yaksho obidva vidpovidnih bita operandiv rivni 1 rezultuyuchij dvijkovij rozryad dorivnyuye 1 yaksho zh hocha b odin bit z pari dorivnyuye 0 rezultuyuchij dvijkovij rozryad dorivnyuye 0 Priklad I 0011 0101 0001 Pobitove ABO OR Pobitove ABO ce binarna operaciya diya yakoyi ekvivalentno zastosuvannya logichnogo ABO do kozhnoyi pari bitiv yaki stoyat na odnakovih poziciyah u dvijkovih uyavlennyah operandiv Inshimi slovami yaksho obidva vidpovidnih bita operandiv rivni 0 dvijkovij rozryad rezultatu dorivnyuye 0 yaksho zh hocha b odin bit z pari dorivnyuye 1 dvijkovij rozryad rezultatu dorivnyuye 1 Priklad ABO 0011 0101 0111 Dodavannya za modulem dva XOR Dokladnishe Dodavannya za modulem dva Dodavannya za modulem dva abo dvomisna operaciya viklyuchne ABO ce binarna operaciya rezultat diyi yakoyi dorivnyuye 1 yaksho chislo skladayemih odinichnih bitiv neparne yaksho zh yih chislo parne to rezultat dorivnyuye 0 Priklad Vikl ABO 0011 0101 0110 Persha nazva operaciyi obumovlena tim sho rezultat ciyeyi operaciyi vidriznyayetsya vid rezultatu ABO lishe v odnomu z 4 vipadkiv vhodu 1 vipadok odnochasnoyi istinnosti argumentiv viklyuchayetsya She znachennya ciyeyi logichnoyi zv yazki peredayetsya soyuzom abo Druga nazva tim sho dijsno ye skladannyam v kilci virahuvan za modulem dva z chogo sliduyut deyaki cikavi vlastivosti Napriklad na vidminu vid visheopisanih I ta ABO cya operaciya ye oborotnoyu abo involyutivnoyu x y y x displaystyle x oplus y oplus y x V komp yuternij grafici dodavannya po modulyu dva zastosovuyetsya pri vivedenni sprajtiv na kartinku povtorne yiyi zastosuvannya pribiraye sprajt z kartinki Zavdyaki involyutivnosti cya zh operaciya znajshla zastosuvannya v kriptografiyi yak najprostisha realizaciya shifru Vernama Dodavannya za modulem dva takozh mozhe vikoristovuvatisya dlya obminu dvoh zminnih znachennyami vikoristovuyuchi algoritm obminu XOR Takozh cya operaciya mozhe nazivatisya inversiyeyu po masci tobto u vihidnogo dvijkovogo chisla invertuyutsya biti yaki zbigayutsya z 1 v masci Inshi pobitovi logichni operaciyi U poshirenih movah programuvannya vbudovanimi zasobami realizuyutsya lishe chotiri pobitovi logichni operaciyi I ABO NE i viklyuchne ABO Dlya zavdannya dovilnoyi pobitovij logichnoyi operaciyi cilkom dostatno pererahovanih i bilshe togo yak viplivaye z teoriyi bulevih funkcij mozhna obmezhitisya she menshim naborom bazovih operacij Ye takozh movi programuvannya de isnuye vbudovana mozhlivist vikonati bud yaku binarnu logichnu operaciyu pobitovo Napriklad v PL I ye vbudovana funkciya BOOL tretij argument yakoyi priznacheno dlya vkazivki dovilnoyi logichnoyi operaciyi yaku neobhidno pobitovo zastosuvati do pershih dvoh argumentiv Bitovi zsuviLogichnij zsuv pravoruchArifmetichnij zsuv pravoruchCiklichnij zsuvCiklichnij zsuv cherez bit perenosu Dokladnishe Bitovij zsuv Do bitovih operacij takozh vidnosyat bitovi zsuvi Pri zsuvi znachennya bitiv kopiyuyutsya v susidni za napryamom zsuvu Rozriznyayut dekilka vidiv zsuviv logichnij arifmetichnij iciklichnij zalezhno vid obrobki krajnih bitiv Takozh rozriznyayut zsuv livoruch v napryamku vid molodshogo bita do starshogo i pravoruch v napryamku vid starshogo bita do molodshogo Logichnij zsuv Pri logichnomu zsuvi znachennya ostannogo bita za napryamom zsuvu vtrachayetsya kopiyuyemo v bit perenesennya a pershij nabuvaye nulove znachennya Logichni zsuvi na odinicyu livoruch ta pravoruch vikoristovuyutsya dlya mnozhennya ta dilennya na 2 vidpovidno I na stepin dvijki yaksho zsuv ne na odinicyu Zavdyaki tomu sho zsuv zajmaye menshe taktiv procesora nizh mnozhennya jogo vikoristovuvali zamist mnozhennya chi dilennya na stepin dvijki Ale z suchasnimi optimizovanimi kompilyatorami taka diyalnist nebazhana cherez mozhlivist pomilok Arifmetichnij zsuv Arifmetichnij zsuv analogichnij logichnomu ale znachennya slova vvazhayetsya znakovim chislom predstavlenim v dodatkovomu kodi Tak pri pravomu zsuvi starshij bit zberigaye svoye znachennya Livij arifmetichnij zsuv identichnij logichnomu Ciklichnij zsuv Pri ciklichnomu zsuvi znachennya ostannogo bita za napryamom zsuvu kopiyuyetsya v pershij bit i kopiyuyetsya v bit perenosu Takozh rozriznyayut ciklichnij zsuv cherez bit perenosu pri nomu pershij bit za napryamom zsuvu otrimuye znachennya z bita perenosu a znachennya ostannogo bita zsuvayetsya v bit perenosu U movah programuvannyaU nastupnij tablici dlya deyakih mov programuvannya navedeno vbudovani operatori ta funkciyi sho realizuyut pobitovi logichni operaciyi Mova NE I ABO Vikl ABO Zsuv livoruch Zsuv pravoruch Inshi C S Java C Ruby Python amp lt lt gt gt JavaScript lt lt gt gt gt gt gt Pascal Delphi not and or xor shl shr PL I INOT IAND IOR IEOR BOOL amp Prolog Ocaml lsl lsr Assembler shl shr VHDL sll srlV teoriyi skladnosti algoritmivTermin bitova operaciya chasto vikoristovuyetsya v oblasti obchislen tak zvanih shvidkih algoritmiv yaki vivchayut algoritmi obchislennya zadanoyi funkciyi z zadanoyu tochnistyu z vikoristannyam yak mozhna menshogo chisla bitovih operacij Bitova operaciya v teoriyi algoritmiv zapis znakiv 0 1 plyus minus duzhka dodavannya vidnimannya ta mnozhennya dvoh bitiv chisla zapisani v dvijkovij sistemi chislennya Vikoristovuyetsya dlya ocinki skladnosti algoritmu Zv yazok z inshimi naukamiBitovi operaciyi ta matematichna logika Bitovi operaciyi duzhe blizki hocha i ne totozhni logichnim zv yazkam v klasichnij logici Bit mozhna rozglyadati yak logichne sudzhennya jogo znachennyami ye 1 istina i 0 brehnya Pri takij interpretaciyi vidomi v logici zv yazki kon yunkciyi diz yunkciyi implikaciyi zaperechennya ta inshi mayut uyavlennya na movi bitiv I navpaki bitovi operaciyi legko opisuyutsya movoyu obchislennya vislovlyuvan Odnak zv yazkam matematichnoyi logiki bilsh vidpovidayut logichni operaciyi u tomu chisli v programuvanni nizh vlasne bitovi operaciyi Uzagalnennya operacij na bulevu algebru Zamist poodinokih bitiv mi mozhemo rozglyanuti vektori z fiksovanoyi kilkosti bitiv v programuvanni yih nazivayut registrami napriklad bajti U programuvanni registri rozglyadayut yak dvijkove rozkladannya cilogo chisla b b 0 2 b 1 2 2 b 2 2 N 1 b N 1 displaystyle b b 0 2b 1 2 2 b 2 2 N 1 b N 1 de N kilkist bitiv u registri Tim ne mensh nisho ne zavazhaye rozglyadati ci registri same yak bitovi vektori ta provoditi bulevi operaciyi pokomponentno bit nomer k znachennya ye rezultat operaciyi vid bitiv nomer k argumentiv rechi matematichno kazhuchi bulevi operaciyi poshiryuyutsya takim chinom na dovilnu bulevu algebru Takim chinom mi otrimuyemo operaciyi pobitovogo I ABO NE vikl ABO tosho Yak arifmetichni dani operaciyi ne volodiyut horoshimi vlastivostyami za vinyatkom pobitovogo NE yake dlya chisel v dodatkovomu kodi zbigayetsya z virahuvannyam z 1 x 1 x Odnak voni duzhe korisni v programuvanni 2 adichna interpretaciya Cile chislo zapisane v dodatkovomu kodi v neskinchennij v bik dodatnih stupeniv dvijki dvijkovij registr ye prirodnim ob yektom dlya teoriyi p adichnih chisel pri p 2 displaystyle p 2 Mnozhina cilih 2 adichnih chisel tobto dovilnih neskinchennih bitovih poslidovnostej mozhe buti rozglyanute yak buleva algebra tochno tak samo yak i bezlich znachen bitovogo registra kincevoyi dovzhini Vsi pererahovani vishe bitovi operaciyi viyavlyayutsya bezperervnimi vidobrazhennyami Hocha praktichne programuvannya ne maye registriv neskinchennoyi dovzhini ce ne zavazhaye vikoristovuvati cej teoretichnij fakt v kriptografiyi dlya stvorennya shvidkodijnih algoritmiv shifruvannya Bitovi operaciyi yak osnova cifrovoyi tehniki Bitovi operaciyi lezhat v osnovi obrobki cifrovih signaliv A same za dopomogoyu nih mi mozhemo z odnogo abo dekilkoh signaliv na vhodi otrimati novij signal yakij u svoyu chergu mozhe buti podanij na vhid odniyeyi abo dekilkom takimi operaciyami Vlasne same bitovi operaciyi v poyednanni z zapam yatovuvalnimi elementami napr trigerami realizuyut vse bagatstvo mozhlivostej suchasnoyi cifrovoyi tehniki Praktichni zastosuvannyaZ tochki zoru zastosuvannya okrema bitova operaciya malo cikava Tomu praktichne zastosuvannya gruntuyetsya na sposobah kombinuvannya riznih bitovih operacij dlya realizaciyi bilsh skladnogo obchislennya Mozhna vidznachiti dva aspekti zbilshennya rozmiru registriv v yakih bitovi operaciyi vikonuyutsya ne po odnij a odrazu na bezlichi 8 16 32 64 bitah eksperimentalni pristroyi de uzagalnyuyut bitovi operaciyi z dvijkovoyi sistemi na trijchastij ta inshi sistemi chislennya tak napriklad rozroblena teoriya roboti z chetverichnoyu sistemoyu DNK komp yuter Tak samo roblyatsya doslidzhennya v oblasti kvantovogo komp yutera Fizichna realizaciya bitovih operacij Realizaciya bitovih operacij mozhe v principi buti bud yakij mehanichnoyi v tomu chisli gidravlichnoyi ta pnevmatichnoyi himichnoyu teplovoyu elektrichnoyi magnitnoyi ta elektromagnitnoyi diapazoni IK vidimij optichnij UF i dali za zmenshennyam dovzhin hvil a takozh u viglyadi kombinacij napriklad elektromehanichnoyi U pershij polovini XX stolittya do vinahodu tranzistoriv zastosovuvali elektromehanichni rele ta elektronni lampi U pozhezhonebezpechnih ta vibuhonebezpechnih umovah dosi zastosovuyut pnevmatichni logichni pristroyi pnevmonika Najbilsh poshireni elektronni realizaciyi bitovih operacij za dopomogoyu tranzistoriv napriklad Rezistorno tranzistorna logika RTL diod tranzistorna logika DTL emiternij pov yazana logika ESL tranzistornih tranzistorna logika TTL logika KMON logika i in Odniyeyu z prichin cherez yaku bazovi osnovni logichni elementi buduyut na invertora a povtoryuvachi ye dodatkovimi elementami bulo te sho v elektronici invertori OE mogutnishe povtoryuvachiv OK Ale osnovnoyu prichinoyu ye te sho dva invertora zaminyuyut odin povtoryuvach a na povtoryuvachah invertor ne zbuduvati V kvantovih obchislennyah z pererahovanih bulevih operacij realizuyutsya lishe NE i vikl ABO z deyakimi zasterezhennyami Kvantovih analogiv I ABO tosho ne isnuye Shemi aparatnoyi logiki Rezultat operaciyi ABO NE abo ABO vid usih bitiv dvijkovogo registra pereviryaye chi dorivnyuye znachennya registra nulyu te zh same vzyate vid vihodu vikl ABO dvoh registriv pereviryaye rivnist yih znachen mizh soboyu Bitovi operaciyi zastosovuyutsya v znakogeneratorah ta grafichnih adapterah osoblivo velika bula yih rol v adapteri EGA v rezhimah z 16 kolorami hitromudre poyednannya aparatnoyi logiki adaptera z logichnimi komandami centralnogo procesora dozvolyaye rozglyadati EGA yak pershij v istoriyi grafichnij priskoryuvach Vikoristannya v programuvanni Zavdyaki realizaciyi v arifmetichnomu logichnomu pristroyi ALU procesora chimali yih reyestrovi bitovi operaciyi aparatno dostupni v U bilshosti procesoriv realizovani yak instrukciyi registrove NE reyestrovi dvohargumentni I ABO vikl ABO perevirka rivnosti nulyu div vishe tri tipi bitovih zrushen a takozh ciklichni bitovi zrushennya Registrova operaciya I vikoristovuyetsya dlya perevirki bita na 0 abo 1 ustanovki 0 u vkazanij bit skidannya bita Registrova operaciya ABO vikoristovuyetsya ustanovki 1 u vkazanij bit Registrova operaciya viklyuchaye ABO vikoristovuyetsya dlya invertuvannya bitiv registra po masci Zrushennya vlivo vpravo vikoristovuyetsya dlya mnozhennya cilochiselnogo dilennya na 2 i vidilennya okremih bitiv Tak napriklad v merezhevih internet tehnologiyah operaciya I mizh znachennyam IP adresi ta znachennyam maski pidmerezhi vikoristovuyetsya dlya viznachennya nalezhnosti ciyeyi adresi do pidmerezhi Div takozhBit Dvijkova sistema chislennya Logichni elementi Kombinacijna logikaPrimitkiSteele Jr Guy PDF MIT AI Lab Arhiv originalu PDF za 6 grudnya 2014 Procitovano 20 travnya 2013 Arhiv originalu za 29 veresnya 2020 Procitovano 29 grudnya 2017 a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite web title Shablon Cite web cite web a Obslugovuvannya CS1 Storinki z tekstom archived copy yak znachennya parametru title posilannya Bitwise operators 18 listopada 2015 u Wayback Machine MDN Cya stattya potrebuye dodatkovih posilan na dzherela dlya polipshennya yiyi perevirnosti Bud laska dopomozhit udoskonaliti cyu stattyu dodavshi posilannya na nadijni avtoritetni dzherela Zvernitsya na storinku obgovorennya za poyasnennyami ta dopomozhit vipraviti nedoliki Material bez dzherel mozhe buti piddano sumnivu ta vilucheno veresen 2016