Copyright (C) 2000-2012 |
GNU Info (gmp.info)Integer Logic and Bit FiddlingLogical and Bit Manipulation Functions ====================================== These functions behave as if twos complement arithmetic were used (although sign-magnitude is the actual implementation). The least significant bit is number 0. - Function: void mpz_and (mpz_t ROP, mpz_t OP1, mpz_t OP2) Set ROP to OP1 logical-and OP2. - Function: void mpz_ior (mpz_t ROP, mpz_t OP1, mpz_t OP2) Set ROP to OP1 inclusive-or OP2. - Function: void mpz_xor (mpz_t ROP, mpz_t OP1, mpz_t OP2) Set ROP to OP1 exclusive-or OP2. - Function: void mpz_com (mpz_t ROP, mpz_t OP) Set ROP to the one's complement of OP. - Function: unsigned long int mpz_popcount (mpz_t OP) If OP>=0, return the population count of OP, which is the number of 1 bits in the binary representation. If OP<0, the number of 1s is infinite, and the return value is MAX_ULONG, the largest possible `unsigned long'. - Function: unsigned long int mpz_hamdist (mpz_t OP1, mpz_t OP2) If OP1 and OP2 are both >=0 or both <0, return the hamming distance between the two operands, which is the number of bit positions where OP1 and OP2 have different bit values. If one operand is >=0 and the other <0 then the number of bits different is infinite, and the return value is MAX_ULONG, the largest possible `unsigned long'. - Function: unsigned long int mpz_scan0 (mpz_t OP, unsigned long int STARTING_BIT) - Function: unsigned long int mpz_scan1 (mpz_t OP, unsigned long int STARTING_BIT) Scan OP, starting from bit STARTING_BIT, towards more significant bits, until the first 0 or 1 bit (respectively) is found. Return the index of the found bit. If the bit at STARTING_BIT is already what's sought, then STARTING_BIT is returned. If there's no bit found, then MAX_ULONG is returned. This will happen in `mpz_scan0' past the end of a positive number, or `mpz_scan1' past the end of a negative. - Function: void mpz_setbit (mpz_t ROP, unsigned long int BIT_INDEX) Set bit BIT_INDEX in ROP. - Function: void mpz_clrbit (mpz_t ROP, unsigned long int BIT_INDEX) Clear bit BIT_INDEX in ROP. - Function: int mpz_tstbit (mpz_t OP, unsigned long int BIT_INDEX) Test bit BIT_INDEX in OP and return 0 or 1 accordingly. |