Quick References
      ADO
      ASP
      CSS2
      HTML
      JavaScript
      Jet SQL
      VBScript
      WML
      WMLScript
      WSH
      XHTML
      XML DOM
      XSLT

Features
      Knowledge Base
      Tutorials

Partners
     ZVON.ORG
     XML
     Planet Source Code
     VisualBuilder
     Web Design
     Your HTML Source
     XML/XSLT Forums
     ASPAlliance
     Scripts
     
     Programmers Heaven
     Tek-Tips Forums
     Developer Fusion
     Code Project











OPERATORS:  & | ^ ~ << >> >>>


Bitwise operators perform logical and shift operations. They work by treating their operands as a series of 32 bits and performing their operations on them at this bit level. However, the return value is a decimal format number.
 
The following examples of bitwise logical operators assume the variable 'a' to be 13 (binary 1101) and 'b' to be 9 (binary 1001)
 
&
 
This is the bitwise AND operator which returns a 1 for each bit position where the corresponding bits of both its operands are 1. The following code would return 9 (1001):
 
Code:
result = a & b;
 
|
 
This is the bitwise OR operator and returns a one for each bit position where one or both of the corresponding bits of its operands is a one. This example would return 13 (1101):
 
Code:
result = a | b;
 
^ This is the bitwise XOR operator, which returns a one for each position where one (not both) of the corresponding bits of its operands is a one. The next example returns 4 (0100):
 
Code:
result = a ^ b;
 
~
 
This is the bitwise NOT operator and it works by converting each bit of its operand to its opposite. This example returns -14:
 
Code:
result = ~a;
 
The following bitwise operators perform shift operations. In the examples the variable 'a' is assumed to be 13 (binary 1101) and the variable 'b' 2 (binary 10).
 
<<
 
This is the left shift operator and it works by shifting the digits of the binary representation of the first operand to the left by the number of places specified by the second operand. The spaces created to the right are filled in by zeros, and any digits falling off the left are discarded. The following code returns 52 as the binary of 13 (1101) is shifted two places to the left giving 110100:
 
Code:
result = a << b;
 
>>
 
This is the sign-propagating right shift operator which shifts the digits of the binary representation of the first operand to the right by the number of places specified by the second operand, discarding any shifted off to the right. The copies of the leftmost bit are added on from the left, thereby preserving the sign of the number. This next example returns 3 (11) as the two right-most bit of 13 (1101) are shifted off to the right and discarded:
 
Code:
result = a >> b;
 
Note that if 'a' were -13 in the above example, the code would return -4 as the sign is preserved.
 
>>>
 
This is the zero-fill right shift operator which shifts the binary representation of the first operand to the right by the number of places specified by the second operand. Bits shifted off to the right are discarded and zeroes are added on to the left. With a positive number you would get the same result as with the sign-propagating right shift operator, but negative numbers lose their sign becoming positive as in the next example, which (assuming 'a' to be -13) would return 1073741820:
 
Code:
result = a >>> b;

 


Copyright 1999-2005 by Infinite Software Solutions, Inc. All rights reserved.
Trademark Information