size = mpz_sizeinbase(A, 2); for(i = 0; i < size; i++) { if(mpz_tstbit(A, i)) mpz_setbit(B,i); }