Bitni operaterji so operaterji, ki se uporabljajo za izvajanje operacij s podatki na bitni ravni. Ko izvajamo bitne operacije, je to znano tudi kot programiranje na bitni ravni. Sestavljen je iz dveh števk, 0 ali 1. Uporablja se predvsem v numeričnih izračunih za hitrejše izračune.
V programskem jeziku C imamo različne vrste bitnih operatorjev. Sledi seznam bitnih operaterjev:
Operater | Pomen operatorja |
---|---|
& | Bitni operator IN |
| | Bitni operator ALI |
^ | Bitni izključni operator ALI |
~ | Operator enega komplementa (unarni operator) |
<< | Levi menjalnik |
>> | Operater desnega premika |
Poglejmo resničnostno tabelo bitnih operaterjev.
X | IN | X&Y | X|Y | X^Y |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 | 1 |
1 | 0 | 0 | 1 | 1 |
1 | 1 | 1 | 1 | 1 |
Bitni operator IN
Bitni operator IN je označen z enim znakom & (&). Na obeh straneh operatorja (&) sta zapisana dva cela operanda. Če sta ustrezna bita obeh operandov 1, potem je rezultat bitne operacije IN 1; drugače bi bil rezultat 0.
na primer
We have two variables a and b. a =6; b=4; The binary representation of the above two variables are given below: a = 0110 b = 0100 When we apply the bitwise AND operation in the above two variables, i.e., a&b, the output would be: Result = 0100
Kot lahko opazimo iz zgornjega rezultata, se biti obeh spremenljivk primerjajo enega za drugim. Če je bit obeh spremenljivk 1, bi bil izhod 1, sicer 0.
Razumejmo bitni operator IN skozi program.
#include int main() { int a=6, b=14; // variable declarations printf('The output of the Bitwise AND operator a&b is %d',a&b); return 0; }
V zgornji kodi smo ustvarili dve spremenljivki, tj. 'a' in 'b'. Vrednosti 'a' in 'b' sta 6 oziroma 14. Binarni vrednosti 'a' in 'b' sta 0110 oziroma 1110. Ko med tema dvema spremenljivkama uporabimo operator IN,
a IN b = 0110 && 1110 = 0110
Izhod
Bitni operator ALI
Bitni operator ALI je predstavljen z enim navpičnim znakom (|). Na obeh straneh simbola (|) sta zapisana dva cela operanda. Če je bitna vrednost katerega koli operanda 1, bi bil izhod 1, sicer 0.
na primer
java združevanje nizov
We consider two variables, a = 23; b = 10; The binary representation of the above two variables would be: a = 0001 0111 b = 0000 1010 When we apply the bitwise OR operator in the above two variables, i.e., a|b , then the output would be: Result = 0001 1111
Kot lahko opazimo iz zgornjega rezultata, se bita obeh operandov primerjata enega za drugim; če je vrednost enega bita 1, bi bil izhod 1, sicer 0.
Razumejmo bitni operator ALI s pomočjo programa.
#include int main() int a=23,b=10; // variable declarations printf('The output of the Bitwise OR operator a
Izhod
Bitni izključni operator ALI
Bitni izključni operator ALI je označen s simbolom (^). Dva operanda sta zapisana na obeh straneh izključnega operatorja ALI. Če je ustrezen bit katerega koli od operandov 1, bi bil izhod 1, sicer 0.
na primer
We consider two variables a and b, a = 12; b = 10; The binary representation of the above two variables would be: a = 0000 1100 b = 0000 1010 When we apply the bitwise exclusive OR operator in the above two variables (a^b), then the result would be: Result = 0000 1110
Kot lahko opazimo iz zgornjega rezultata, se bita obeh operandov primerjata enega za drugim; če je ustrezna bitna vrednost katerega koli operanda 1, bi bil izhod 1, sicer 0.
Razumejmo bitni izključni operator ALI prek programa.
#include int main() { int a=12,b=10; // variable declarations printf('The output of the Bitwise exclusive OR operator a^b is %d',a^b); return 0; }
Izhod
Operator bitnega komplementa
Operator bitnega komplementa je znan tudi kot operator enega komplementa. Predstavljen je s simbolom tilda (~). Vzame samo en operand ali spremenljivko in izvede operacijo komplementa na operandu. Ko uporabimo operacijo komplementa na katerem koli bitu, potem 0 postane 1 in 1 postane 0.
na primer
If we have a variable named 'a', a = 8; The binary representation of the above variable is given below: a = 1000 When we apply the bitwise complement operator to the operand, then the output would be: Result = 0111
Kot lahko opazimo iz zgornjega rezultata, če je bit 1, potem se spremeni v 0, sicer 1.
Razumejmo operator komplementa skozi program.
#include int main() { int a=8; // variable declarations printf('The output of the Bitwise complement operator ~a is %d',~a); return 0; }
Izhod
Operatorji bitnega premika
V programiranju C obstajata dve vrsti operaterjev bitnega premika. Operatorji bitnega premika bodo premaknili bite na levo ali desno stran. Zato lahko rečemo, da je operator bitnega premika razdeljen v dve kategoriji:
- Levi operater
- Operator desnega premika
Levi operater
za zanko v c
Je operator, ki premakne število bitov na levo stran.
Sintaksa operatorja levega premika je podana spodaj:
Operand << n
Kje,
Operand je celoštevilski izraz, na katerem uporabimo operacijo premika v levo.
n je število bitov, ki jih je treba premakniti.
V primeru operatorja premika v levo bo 'n' bitov premaknjenih na levo stran. 'N' bitov na levi strani bo izstopilo, 'n' bitov na desni strani pa bo zapolnjenih z 0.
na primer
Suppose we have a statement: int a = 5; The binary representation of 'a' is given below: a = 0101 If we want to left-shift the above representation by 2, then the statement would be: a << 2; 0101<<2 = 00010100 < pre> <p> <strong>Let's understand through a program.</strong> </p> <pre> #include int main() { int a=5; // variable initialization printf('The value of a<<2 is : %d ', a<<2); return 0; } < pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/c-tutorial/51/bitwise-operator-c-5.webp" alt="Bitwise Operator in C"> <p> <strong>Right-shift operator</strong> </p> <p>It is an operator that shifts the number of bits to the right side.</p> <p> <strong>Syntax of the right-shift operator is given below:</strong> </p> <pre> Operand >> n; </pre> <p> <strong>Where,</strong> </p> <p>Operand is an integer expression on which we apply the right-shift operation.</p> <p>N is the number of bits to be shifted.</p> <p>In the case of the right-shift operator, 'n' bits will be shifted on the right-side. The 'n' bits on the right-side will be popped out, and 'n' bits on the left-side are filled with 0.</p> <p> <strong>For example, </strong> </p> <pre> Suppose we have a statement, int a = 7; The binary representation of the above variable would be: a = 0111 If we want to right-shift the above representation by 2, then the statement would be: a>>2; 0000 0111 >> 2 = 0000 0001 </pre> <p> <strong>Let's understand through a program.</strong> </p> <pre> #include int main() { int a=7; // variable initialization printf('The value of a>>2 is : %d ', a>>2); return 0; } </pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/c-tutorial/51/bitwise-operator-c-6.webp" alt="Bitwise Operator in C"> <hr></2></pre></2>
Kje,
Operand je celoštevilski izraz, na katerem uporabimo operacijo desnega premika.
N je število bitov, ki jih je treba premakniti.
V primeru operatorja desnega premika bo 'n' bitov premaknjenih na desno stran. 'N' bitov na desni strani bo izstopilo, 'n' bitov na levi strani pa bo zapolnjenih z 0.
na primer
Suppose we have a statement, int a = 7; The binary representation of the above variable would be: a = 0111 If we want to right-shift the above representation by 2, then the statement would be: a>>2; 0000 0111 >> 2 = 0000 0001
Razumejmo skozi program.
#include int main() { int a=7; // variable initialization printf('The value of a>>2 is : %d ', a>>2); return 0; }
Izhod
2>2>