Побитови операции в езика за програмиране C са операции, които може да се извършат на битово ниво чрез използване на побитови оператори.
Побитовите операции си контрастират с тези от байтово ниво, които спрямо побитовите оператори се описват като техни логически допълнения – това са AND, OR и NOT операторите. Вместо да се изпълняват върху отделни битове, „байт-ниво“ операторито се изпълняват върху низове от осем бита (известни като байтове) наведнъж. Причината за това е, че байтът по правило е най-малката единица за адресируема памет (т.е. данни с уникален адрес на паметта.)
Това се отнася и за побитови оператори, което означава, че дори да работят само върху един бит, те не могат да приемат нищо по-малко от един байт за въвеждане.
Побитови оператори C предвижда шест оператора за битова манипулация Символ Оператор & побитово И (AND) |побитово включващо ИЛИ (OR) ^ побитово изключващо ИЛИ (XOR) <<отместване наляво >>отместване надясно ~ побитово НЕ (NOT) (унарно)
Побитово AND „&“ бит абит б а & b (a И б) 0 0 0 0 1 0 1 0 0 1 1 1 Побитовият AND оператор е единствен амперсанд: &. Това е просто символ на AND, който извършва работата си върху битовете на операндите, а не върху истинната им стойност. Побитовият бинарен AND извършва логическия AND (както е показано в таблицата по-горе) на битовете във всяка позиция на число в двоична форма.
Например, работейки с байт (Тип char): 11001000 & 10111000 =
10001000 Най-значимият бит на първото число е 1 и този на второто число също е 1, така че най-значимият бит според резултата е 1; вторият най-значим бит, битът на второто число, е равен на нула, така че резултатът е 0.
Побитово OR „|“ бит абит ба | б (а или б) 0 0 0 0 1 1 1 0 1 1 1 1 Подобно на побитовия AND, побитовият OR работи само на битово ниво. Резултатът от него е 1, ако някой от битовете му е единица, а нула само тогава, когато и двата бита са нули. Символът е '|', който може да бъде наречен тръба
11001110 | 10011000 = 11011110
Побитово изключващо XOR „^“ бит абит ба ^ б (а XOR б) 0 0 0 0 1 1 1 0 1 1 1 0 Побитовият XOR (изключващото „или“) изпълнява логическата функция XOR, която е все едно добавяне на два бита и изхвърляне на носеното. Резултатът е нула само тогава, когато имаме две нули или две единици. XOR може да се използва за превключване на битове между 1 и 0. По този начин i = i ^ 1, когато е ползвано в цикъл, превключва стойността си между 1 и 0.
Побитово NOT „~“ / допълнение (унарно) бит а ~а (допълнение на а) 0 1 1 0 Допълващото (~) или побитовото допълнение ни връща число, обратното по знак на даденото. По този начин, ние получаваме битовете разменени, за всеки бит със стойност 1 резултатът е 0 и обратно, за всеки бит 0 получаваме бит 1. Тази операция не бива да се бърка с логическото отрицание „!“.
Оператори за изместване Има два оператора за побитово изместване. Те са: Изместване вдясно (>>) Изместване вляво (<<)
Вижте също Булева алгебра (логика)
Източници
Външни препратки Побитови оператори
Категория:C (език за програмиране)