9.6. Bit String Functions and Operators
  This section describes functions and operators for examining and
    manipulating bit strings, that is values of the types
  
   bit
  
  and
  
   bit varying
  
  .  (While only
    type
  
   bit
  
  is mentioned in these tables, values of
    type
  
   bit varying
  
  can be used interchangeably.)
    Bit strings support the usual comparison operators shown in
  
   Table 9.1
  
  , as well as the
    operators shown in
  
   Table 9.14
  
  .
 
Table 9.14. Bit String Operators
| Operator Description Example(s) | 
|---|
| 
         Concatenation 
         | 
| 
         Bitwise AND (inputs must be of equal length) 
         | 
| 
         Bitwise OR (inputs must be of equal length) 
         | 
| 
         Bitwise exclusive OR (inputs must be of equal length) 
         | 
| 
         Bitwise NOT 
         | 
| 
         Bitwise shift left (string length is preserved) 
         | 
| 
         Bitwise shift right (string length is preserved) 
         | 
Some of the functions available for binary strings are also available for bit strings, as shown in Table 9.15 .
Table 9.15. Bit String Functions
  In addition, it is possible to cast integral values to and from type
  
   bit
  
  .
    Casting an integer to
  
   bit(n)
  
  copies the rightmost
  
   n
  
  bits.  Casting an integer to a bit string width wider
    than the integer itself will sign-extend on the left.
    Some examples:
 
44::bit(10) 0000101100 44::bit(3) 100 cast(-44 as bit(12)) 111111010100 '1110'::bit(4)::integer 14
  Note that casting to just
  
   "
   
    bit
   
   "
  
  means casting to
  
   bit(1)
  
  , and so will deliver only the least significant
    bit of the integer.