Bitwise operators include:
& | AND |
&= | AND |
| | OR |
|= | OR |
^ | XOR |
~ | one's compliment |
<< | Shift Left |
<< | Shift Left |
>>= | Shift Right |
>>= | Shift Right |
AND &
will copy a bit to the result if it exists in both operands.
OR | will copy a bit if it exists in eather operand.
XOR ^ copies the bit if it is set in one operand (but not both).
The left operands value is moved left or right by the number of bits specified
by the right operand. For example:
Usually, the resulting 'empty'
bit is assigned ZERO.
Please use
unsigned
variables with these operators to avoid unpredictable
results.
AND OR and XOR
These require two operands and will perform bit comparisions.
main()
{
unsigned int a =index.html 60; /* 60 = 0011 1100 */
unsigned int b = 13; /* 13 = 0000 1101 */
unsigned int c = 0;
c = a & b; /* 12 = 0000 1100 */
}
main()
{
unsigned int a =index.html 60; /* 60 = 0011 1100 */
unsigned int b = 13; /* 13 = 0000 1101 */
unsigned int c = 0;
c = a | b; /* 61 = 0011 1101 */
}
main()
{
unsigned int a =index.html 60; /* 60 = 0011 1100 */
unsigned int b = 13; /* 13 = 0000 1101 */
unsigned int c = 0;
c = a ^ b; /* 49 = 0011 0001 */
}
Try it out with the simulator
Ones Complement
This operator is unary (requires one operand) and has the efect of
'flipping' bits.
main()
{
unsigned int Value=4; /* 4 =index.html 0000 0100 */
Value = ~ Value; /* 251 = 1111 1011 */
}
Try it out with the simulator
Bit shift.
The following operators
can be used for shifting bits left or right.
<<
>>
<<=index.html
>>=index.html
main()
{
unsigned int Value=4; /* 4 =index.html 0000 0100 */
unsigned int Shift=2;
Value = Value << PRINTS 0000 VALUE);
Try them out with the simulator
Examples:
AND
OR
Bit shifting.
Top | Master Index | Keywords | Functions |