Битови операции. Програмиране в C и C ++
Битовите операции са операции, използвани за извършване на манипулации върху битови модели или двоични номера, които включват работа с отделни битове. Това бързо и лесно действие, пряко поддържано от процесора, се използва за контролиране на стойностите за сравнения и изчисления.
съдържание
Основа на изчисленията
Двоичната цифрова система използва само две цифри - 0 и 1. Компютрите работят в двоичен формат, което означава, че съхраняват данни и извършват изчисления само с нули и такива.
Въпреки че една двоична цифра може да се използва за представяне на истинска (1) (истинска) или фалшива (0) (невярна) в логика, можете да използвате няколко бинарни цифри, за да съхранявате големи числа и да изпълнявате сложни функции. Всъщност, всяко число може да бъде представено в двоичен формат.
приложение
Битовите оператори се използват в следните области:
Комуникационни купчини, където отделните битове в заглавната част, прикрепени към данните, носят важна информация.
Вграден софтуер за контролиране на различни функции в чипа и индикация за състоянието на хардуера чрез контролиране на отделните битове на хардуерните регистри на вградените микроконтролери.
Програмиране на ниско ниво за приложения като драйвери на устройства, криптографски софтуер, софтуер за видео декодиране, разпределители на памет, софтуер за компресиране и графики.
Удобно управление на големи набори от цели числа в задачите за търсене и оптимизация.
Битови операции, изпълнявани с битови флагове, които могат да включват инстанция от типа на изброяване, за да съхраняват всякаква комбинация от стойности, определени в списъка на изброените.
Битови операции - как работи?
За разлика от конвенционалните логически оператори (например, +, -, *), които работят с байтове или байтове, бит операторите могат да проверяват или задават всеки от отделните битове в байт. Битовите операции никога не водят до преливане в клетките на паметта, тъй като резултатът, получен след извършване на операцията, е в диапазона от възможни стойности за цифров тип.
Битови оператори, използвани в семействата езици C (C #, C и C ++):
OR (|) - резултатът е вярно, ако някой от операндите е вярно.
AND () - резултатът е правилен само ако и двата операнда са верни. Той може да се използва за конфигуриране на маска за проверка на стойностите на определени битове.
XOR (^) - резултатът е вярен само ако един от нейните операнди е вярно. Използва се главно за превключване на определени битове. Също така помага да се заменят две променливи без да се използва трета.
-
НЕ (~) е поредно допълване или инверсия. Предоставя малко поредно допълнение към операнда чрез инвертиране на неговата стойност, така че всички нули да се преобразуват в такива и всички единици да се преобразуват в нули.
> (вдясно; Shift) и << (ляво; Shift) е оператор, който премества битове на броя позиции, определени от втория операнд в дясната или лявата посока. Операторите на смяна се използват за изравняване на битовете.
Пример за работа
Битовите оператори са символи, представляващи действията, които трябва да бъдат изпълнени на отделни битове. Битова операция работи на две бита модели с еднаква дължина, позициониране на техните отделни битове:
Логическа операция И () на всяка бита двойка води до 1 (true), ако първият и вторият бит са равни на 1. В противен случай резултатът е нула. Сред другите приложения, AND може да се използва за тестване на отделни битове в битов низ, за да се види дали те са неверни или верни.
Да разгледаме по-подробно един пример:
IsOdd = (ValueToTest 1)! = 0.
Логическата операция ИЛИ (|) на всяка двойка бити води до 1, ако първият или вторият бит е 1. В противен случай резултатът е нула. Логическата операция XOR (~) на всяка двойка бити води до 1, ако два бита са различни и 0, ако те са еднакви.
Логическият оператор на NOT е представен като ^. Ляво отместване (<<), дясното преместване (>) и правилното отместване с нулево запълване (>>) понякога се наричат оператори с бита и се наричат оператори за преместване на битовете.
приоритизиране
Приоритетна поръчка (от най-високата до най-ниската) в битовите оператори при програмиране в C:
НЕ;
вдясно, Shift и наляво, Shift);
И;
XOR;
OR.
Тези операнди се използват в повечето програмни езици. Например, когато пишете код в jаvascript, операцията по бит ще бъде същата като тази по-горе. Това се дължи на основните математически основи, на които се основава кодът. По-конкретно, битовите операции в Java, от своя страна, са напълно идентични с jаvascript.
Бит и програмиране в C и други езици
Битът е най-малката единица мярка, използвана за количествено определяне на компютърните данни. Тя съдържа една двоична стойност - 0 или 1.
Въпреки че един бит може да определи логическа стойност на True (1) или False (0), рядко се използва като отделна единица. Следователно, в един компютърен магазин битовете често се групират в 8-битови клъстери, наречени байтове. Тъй като един байт съдържа осем бита, всеки от които има две възможни стойности, в битови операции в C (програмен език) един байт може да има 28 или 256 различни стойности.
Термините "бита" и "байтовете" често са объркани и дори се използват взаимозаменяемо, тъй като звучат еднакви и двете се съкращават с буквата "Б". Въпреки това, когато се напише правилно, битовете се отрязват с малки букви "b", а байтовете се отрязват с главни букви - "B". Важно е да не бъркате тези два термина, тъй като всяко измерване в байтове съдържа осем пъти повече бита. Например, малък 4 KB текстов файл съдържа 4 000 байта или 32 000 бита.
Обикновено файловете, устройствата за съхранение и капацитетът за съхранение се измерват в байтове, а скоростите на данните се измерват в битове. Например, една карта с памет SSD може да има капацитет от 240 GB, докато товарът може да бъде прехвърлен на 10 Mbps. В допълнение, бита се използват и за описване на архитектурата на процесора, като 32-битов или 64-битов процесор.
Битови операции в паскал
Битовото ниво на операциите в Pascal включва работа с отделни битове, които са най-малките единици данни на компютъра. Макар компютрите да могат да манипулират битове, те обикновено съхраняват данни и изпълняват инструкции в бит-умно множество стойности, наречени байтове. Повечето езици за програмиране, включително и операциите с бита в Delphi, контролни групи от 8, 16 или 32 бита.
Описание на процеса
Битовият оператор е символ, представляващ действие, което работи с данни на ниво битове, а не с байтове или големи информационни единици, тъй като е по-често срещано.
Повечето конвенционални оператори работят с един или повече байта, които в повечето системи съдържат осем бита. Тъй като те осигуряват по-голяма точност и изискват по-малко ресурси, бит операторите могат да направят кода по-бърз и по-ефективен. Примерите за използване на операции по битум включват:
криптиране;
компресия;
графики;
комуникация на портове / гнезда;
програмиране на вградени системи;
машини с крайно състояние.
Битовият оператор работи с двоично представяне на число, а не на стойността му. Операндът се третира като набор от битове, а не като едно число. Битовите оператори са подобни на повечето поддържащи езици - C, Java, jаvascript, Python и Visual Basic.
Защо е важно да се използва?
Битовите операции са абсолютно необходими при програмиране на хардуерни регистри в вградените системи. Всеки процесор има един или повече регистри (обикновено специфичен адрес на паметта), които следят дали прекъсването е включено или изключено. За да разрешите прекъсването да стартира нормален процес, трябва да зададете разрешения бит за този тип прекъсване и най-важното, да не променяте нито един от другите битове в регистъра.Когато се задейства прекъсване, обикновено се задава малко в регистъра на състоянието, така че една рутинна услуга може да определи точната причина за прекъсването. Изпробването на отделни битове ви позволява бързо да декодирате източника на прекъсвания.
В много вградени системи общата налична RAM може да бъде 64, 128 или 256 байта. В тази среда един байт обикновено се използва за съхраняване на множество елементи от данни и булеви флагове, а след това се използват операции с битове за инсталиране и четене.
- Двоичен код. Видове и дължина на двоичния код. Обратният двоичен код
- Как да конвертирате байтове в мегабайти и обратно?
- Подробности как да конвертирате битовете в байтове
- Логическа операция. Основни логически операции
- Информационни единици в информатиката. Минималната единица информация
- Какво представлява кодирането и декодирането? Примери. Методи за кодиране и декодиране на…
- Представяне на номера в компютъра. Представя числа и реални номера в паметта на компютъра
- Защо двоичното кодиране е универсално? Методи на програмиране
- Аритметична логическа единица (ALU) - какво е това?
- Видове данни и как да ги обработвате
- Устройства, включени в процесора: описание, функции
- Двоични номера: система за двоични числа
- Какви са номерата с плаваща запетая?
- Как да разберете капацитета на процесора
- Информационна система - брой. Видове номерационни системи
- Най-популярните системи с номера
- Представяне на информация в компютър
- Преводът от двоичен до десетичен е лесен
- Двоични кодове: рецензии, коментари, въпроси, отговори
- Римската цифрова система е красива, но трудна?
- Основни типове данни Mysql