muzruno.com

Битови операции. Програмиране в C и C ++

Битовите операции са операции, използвани за извършване на манипулации върху битови модели или двоични номера, които включват работа с отделни битове. Това бързо и лесно действие, пряко поддържано от процесора, се използва за контролиране на стойностите за сравнения и изчисления.

Основа на изчисленията

Двоичната цифрова система използва само две цифри - 0 и 1. Компютрите работят в двоичен формат, което означава, че съхраняват данни и извършват изчисления само с нули и такива.битови операции

Въпреки че една двоична цифра може да се използва за представяне на истинска (1) (истинска) или фалшива (0) (невярна) в логика, можете да използвате няколко бинарни цифри, за да съхранявате големи числа и да изпълнявате сложни функции. Всъщност, всяко число може да бъде представено в двоичен формат.

приложение

Битовите оператори се използват в следните области:

  • Комуникационни купчини, където отделните битове в заглавната част, прикрепени към данните, носят важна информация.

  • Вграден софтуер за контролиране на различни функции в чипа и индикация за състоянието на хардуера чрез контролиране на отделните битове на хардуерните регистри на вградените микроконтролери.

  • Програмиране на ниско ниво за приложения като драйвери на устройства, криптографски софтуер, софтуер за видео декодиране, разпределители на памет, софтуер за компресиране и графики.

  • Удобно управление на големи набори от цели числа в задачите за търсене и оптимизация.

  • Битови операции, изпълнявани с битови флагове, които могат да включват инстанция от типа на изброяване, за да съхраняват всякаква комбинация от стойности, определени в списъка на изброените.

c програмиране

Битови операции - как работи?

За разлика от конвенционалните логически оператори (например, +, -, *), които работят с байтове или байтове, бит операторите могат да проверяват или задават всеки от отделните битове в байт. Битовите операции никога не водят до преливане в клетките на паметта, тъй като резултатът, получен след извършване на операцията, е в диапазона от възможни стойности за цифров тип.

Битови оператори, използвани в семействата езици C (C #, C и C ++):

  • OR (|) - резултатът е вярно, ако някой от операндите е вярно.

  • AND () - резултатът е правилен само ако и двата операнда са верни. Той може да се използва за конфигуриране на маска за проверка на стойностите на определени битове.

  • XOR (^) - резултатът е вярен само ако един от нейните операнди е вярно. Използва се главно за превключване на определени битове. Също така помага да се заменят две променливи без да се използва трета.

  • НЕ (~) е поредно допълване или инверсия. Предоставя малко поредно допълнение към операнда чрез инвертиране на неговата стойност, така че всички нули да се преобразуват в такива и всички единици да се преобразуват в нули.

  • > (вдясно; Shift) и << (ляво; Shift) е оператор, който премества битове на броя позиции, определени от втория операнд в дясната или лявата посока. Операторите на смяна се използват за изравняване на битовете.

bit операции в si

Пример за работа

Битовите оператори са символи, представляващи действията, които трябва да бъдат изпълнени на отделни битове. Битова операция работи на две бита модели с еднаква дължина, позициониране на техните отделни битове:

Логическа операция И () на всяка бита двойка води до 1 (true), ако първият и вторият бит са равни на 1. В противен случай резултатът е нула. Сред другите приложения, AND може да се използва за тестване на отделни битове в битов низ, за ​​да се види дали те са неверни или верни.

Да разгледаме по-подробно един пример:

IsOdd = (ValueToTest 1)! = 0.

Логическата операция ИЛИ (|) на всяка двойка бити води до 1, ако първият или вторият бит е 1. В противен случай резултатът е нула. Логическата операция XOR (~) на всяка двойка бити води до 1, ако два бита са различни и 0, ако те са еднакви.



Логическият оператор на NOT е представен като ^. Ляво отместване (<<), дясното преместване (>) и правилното отместване с нулево запълване (>>) понякога се наричат ​​оператори с бита и се наричат ​​оператори за преместване на битовете.bit операции в Java

приоритизиране

Приоритетна поръчка (от най-високата до най-ниската) в битовите оператори при програмиране в C:

  • НЕ;

  • вдясно, Shift и наляво, Shift);

  • И;

  • XOR;

  • OR.

Тези операнди се използват в повечето програмни езици. Например, когато пишете код в jаvascript, операцията по бит ще бъде същата като тази по-горе. Това се дължи на основните математически основи, на които се основава кодът. По-конкретно, битовите операции в Java, от своя страна, са напълно идентични с jаvascript.

Бит и програмиране в C и други езици

Битът е най-малката единица мярка, използвана за количествено определяне на компютърните данни. Тя съдържа една двоична стойност - 0 или 1.
Въпреки че един бит може да определи логическа стойност на True (1) или False (0), рядко се използва като отделна единица. Следователно, в един компютърен магазин битовете често се групират в 8-битови клъстери, наречени байтове. Тъй като един байт съдържа осем бита, всеки от които има две възможни стойности, в битови операции в C (програмен език) един байт може да има 28 или 256 различни стойности.битови операции с jаvascript
Термините "бита" и "байтовете" често са объркани и дори се използват взаимозаменяемо, тъй като звучат еднакви и двете се съкращават с буквата "Б". Въпреки това, когато се напише правилно, битовете се отрязват с малки букви "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.

Защо е важно да се използва?

Битовите операции са абсолютно необходими при програмиране на хардуерни регистри в вградените системи. Всеки процесор има един или повече регистри (обикновено специфичен адрес на паметта), които следят дали прекъсването е включено или изключено. За да разрешите прекъсването да стартира нормален процес, трябва да зададете разрешения бит за този тип прекъсване и най-важното, да не променяте нито един от другите битове в регистъра.delphi битови операцииКогато се задейства прекъсване, обикновено се задава малко в регистъра на състоянието, така че една рутинна услуга може да определи точната причина за прекъсването. Изпробването на отделни битове ви позволява бързо да декодирате източника на прекъсвания.
В много вградени системи общата налична RAM може да бъде 64, 128 или 256 байта. В тази среда един байт обикновено се използва за съхраняване на множество елементи от данни и булеви флагове, а след това се използват операции с битове за инсталиране и четене.

Споделяне в социалните мрежи:

сроден