B'01101'</literal>
<returnvalue>11101</returnvalue>
</para></entry>
</row>
<row>
<entry role="func_table_entry"><para role="func_signature">
<type>bit</type> <literal>#</literal> <type>bit</type>
<returnvalue>bit</returnvalue>
</para>
<para>
Bitwise exclusive OR (inputs must be of equal length)
</para>
<para>
<literal>B'10001' # B'01101'</literal>
<returnvalue>11100</returnvalue>
</para></entry>
</row>
<row>
<entry role="func_table_entry"><para role="func_signature">
<literal>~</literal> <type>bit</type>
<returnvalue>bit</returnvalue>
</para>
<para>
Bitwise NOT
</para>
<para>
<literal>~ B'10001'</literal>
<returnvalue>01110</returnvalue>
</para></entry>
</row>
<row>
<entry role="func_table_entry"><para role="func_signature">
<type>bit</type> <literal><<</literal> <type>integer</type>
<returnvalue>bit</returnvalue>
</para>
<para>
Bitwise shift left
(string length is preserved)
</para>
<para>
<literal>B'10001' << 3</literal>
<returnvalue>01000</returnvalue>
</para></entry>
</row>
<row>
<entry role="func_table_entry"><para role="func_signature">
<type>bit</type> <literal>>></literal> <type>integer</type>
<returnvalue>bit</returnvalue>
</para>
<para>
Bitwise shift right
(string length is preserved)
</para>
<para>
<literal>B'10001' >> 2</literal>
<returnvalue>00100</returnvalue>
</para></entry>
</row>
</tbody>
</tgroup>
</table>
<para>
Some of the functions available for binary strings are also available
for bit strings, as shown in <xref linkend="functions-bit-string-table"/>.
</para>
<table id="functions-bit-string-table">
<title>Bit String Functions</title>
<tgroup cols="1">
<thead>
<row>
<entry role="func_table_entry"><para role="func_signature">
Function
</para>
<para>
Description
</para>
<para>
Example(s)
</para></entry>
</row>
</thead>
<tbody>
<row>
<entry role="func_table_entry"><para role="func_signature">
<indexterm>
<primary>bit_count</primary>
</indexterm>
<function>bit_count</function> ( <type>bit</type> )
<returnvalue>bigint</returnvalue>
</para>
<para>
Returns the number of bits set in the bit string (also known as
<quote>popcount</quote>).
</para>
<para>
<literal>bit_count(B'10111')</literal>
<returnvalue>4</returnvalue>
</para></entry>
</row>
<row>
<entry role="func_table_entry"><para role="func_signature">
<indexterm>
<primary>bit_length</primary>
</indexterm>
<function>bit_length</function> ( <type>bit</type> )
<returnvalue>integer</returnvalue>
</para>
<para>
Returns number of bits in the bit string.
</para>
<para>
<literal>bit_length(B'10111')</literal>
<returnvalue>5</returnvalue>
</para></entry>
</row>
<row>
<entry role="func_table_entry"><para role="func_signature">
<indexterm>
<primary>length</primary>
</indexterm>
<indexterm>
<primary>bit string</primary>
<secondary>length</secondary>
</indexterm>
<function>length</function> ( <type>bit</type> )
<returnvalue>integer</returnvalue>
</para>
<para>
Returns number of bits in the bit string.
</para>
<para>
<literal>length(B'10111')</literal>
<returnvalue>5</returnvalue>
</para></entry>
</row>
<row>