ビット操作関数ここで解説する関数群は,2の補数演算として利用できます(実際には符号付きで実装されていますが)。最小有効bitは0番目となります。op2)op1とop2のビット論理積をropに格納します。op2)ropにop1とop2のビット論理和を格納します。op2)op1とop2のビット排他的論理和を格納します。op)opの1の補数をropに格納します。op)op>=0の時にはopの2進表現における"1"ビットの数を返します。op<0の時は,"1"の数は無限大となり,返り値はmp_bitcnt_tの最大値となります。<0である時,この2数のハミング距離を返します。op2の2進表現において異なるビット数のことです。<0の時は,異なるビット数は無限大となり,返り値はmp_bitcnt_tの最大数となります。starting_bit)opをstarting_bitビット目から,有効ビット数の大きい方向に調べていき,最初の0,もしくは1が見つかったら終了します。返り値は発見したビット数の位置です。mp_bitcnt_tの最大値が返されます。mpz_scan0関数の場合は負数の最後,mpz_scan1関数の場合は非負数の最後を過ぎたところでこれが発生します。bit_index)ropのbit_indexビット目に1を代入します。bit_index)ropのbit_indexビット目に0を代入します。bit_index)ropのbit_indexビット目を反転します。bit_index)opのbit_indexビット目を調べてそのビット値(0もしくは1)を返します。