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.
 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.
 All the other
Expressions and operators.
 Operator precedence.
Operator precedence.
 Assignment Operators.
Assignment Operators. 
  
| Top | Master Index | Keywords | Functions |