Bitwise operators include:
| & | AND |
| &= | AND Assignment |
| | | OR |
| |= | OR Assignment |
| ^ | XOR |
| ^= | XOR Assignment |
| ~ | one's compliment |
| << | Shift Left |
| << | Shift Left |
| >>= | Shift Right Assignment |
| >>= | Shift Right Assignment |
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 */
}
|
XOR
example program which swaps the contents of two variables.
| CGI simulator | JavaScript Simulator |
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 */
}
|
| CGI simulator |
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 << Shift; /* 16 = 0001 0000 */ Value <<= Shift; /* 64 = 0100 0000 */ printf("%d\n", Value); /* Prints 64 */ }
|
Usually, the resulting 'empty' bit is assigned ZERO. Please use unsigned variables with these operators to avoid unpredictable results.
| CGI simulator | JavaScript Simulator |
All the other
Expressions and operators.
Operator precedence.
Assignment Operators.
| Top | Master Index | Keywords | Functions |