PostgreSQL 9.4.1 Documentation | |||
---|---|---|---|

Prev | Up | Chapter 9. Functions and Operators | Next |

# 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`. Aside from the usual comparison operators, the operators shown in Table 9-11 can be used. Bit string operands of `&`, `|`, and `#` must be of equal length. When bit shifting, the original length of the string is preserved, as shown in the examples.

**Table 9-11. Bit String Operators**

Operator | Description | Example | Result |
---|---|---|---|

|| | concatenation | B'10001' || B'011' | 10001011 |

& | bitwise AND | B'10001' & B'01101' | 00001 |

| | bitwise OR | B'10001' | B'01101' | 11101 |

# | bitwise XOR | B'10001' # B'01101' | 11100 |

~ | bitwise NOT | ~ B'10001' | 01110 |

<< | bitwise shift left | B'10001' << 3 | 01000 |

>> | bitwise shift right | B'10001' >> 2 | 00100 |

The following SQL-standard functions work on bit strings as well as character strings: ` length`,

`,`

`bit_length`

`,`

`octet_length`

`,`

`position`

`,`

`substring`

`.`

`overlay`

The following functions work on bit strings as well as binary strings: ` get_bit`,

`. When working with a bit string, these functions number the first (leftmost) bit of the string as bit 0.`

`set_bit`

In addition, it is possible to cast integral values to and from type `bit`. Some examples:

44::bit(10)000010110044::bit(3)100cast(-44 as bit(12))111111010100'1110'::bit(4)::integer14

Note that casting to just "bit" means casting to `bit(1)`, and so will deliver only the least significant bit of the integer.

Note:Casting an integer tobit(n)copies the rightmostnbits. Casting an integer to a bit string width wider than the integer itself will sign-extend on the left.