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