Bitwise operations
Bitwise operators include:
& | AND |
&= | AND |
| | OR |
|= | OR |
^ | XOR |
^= | XOR |
~ | one's compliment |
<< | Shift Left |
<< | Shift Left |
>>= | Shift Right |
>>= | Shift Right |
AND OR and XOR
These require two operands and will perform bit comparisions.
AND & will copy a bit to the result if it exists in both operands.
main() { unsigned int a = 60; /* 60 = 0011 1100 */ unsigned int b = 13; /* 13 = 0000 1101 */ unsigned int c = 0; c = a & b; /* 12 = 0000 1100 */ } |
OR | will copy a bit if it exists in eather operand.
main() { unsigned int a = 60; /* 60 = 0011 1100 */ unsigned int b = 13; /* 13 = 0000 1101 */ unsigned int c = 0; c = a | b; /* 61 = 0011 1101 */ } |
XOR ^ copies the bit if it is set in one operand (but not both).
main() { unsigned int a = 60; /* 60 = 0011 1100 */ unsigned int b = 13; /* 13 = 0000 1101 */ unsigned int c = 0; c = a ^ b; /* 49 = 0011 0001 */ } |
Ones Complement
This operator is unary (requires one operand) and has the efect of 'flipping' bits.main() { unsigned int Value=4; /* 4 = 0000 0100 */ Value = ~ Value; /* 251 = 1111 1011 */ } |
Bit shift.
The following operators can be used for shifting bits left or right.
<< | >> | <<= | >>= |
The left operands value is moved left or right by the number of bits specified by the right operand. For example:
main() { unsigned int Value=4; /* 4 = 0000 0100 */ unsigned int Shift=2; Value = Value << 16 =" 0001" 64 =" 0100"> |
Usually, the resulting 'empty' bit is assigned ZERO. Please use unsigned variables with these operators to avoid unpredictable results.
Well explained operators . Operators are the important part of any programming language. In the above post list of operators is available with the examples.
ReplyDeletesap support packs