Hi, Thanks a lot for accepting my request to be a member of this group.
This is my first attempt at using MPIR, so please excuse me if you find something silly :-) I was looking for a way to convert very large decimals numbers into binary using C. Since I did not find anything I thought of writing my own and started exploring MPIR. There might be some easier alternatives but I am using MPIR because I have to do some more maths on big numbers. What I am trying to do is input a decimal number and then convert this into binary. My program works fine till it find the number of bits required. However something is wrong in the way I am using the operations in the second last `for` loops, i.e: kb[i] = b % 2; b /= 2; This is what I am trying to convert into MPIR specific operations using mpz_mod() and mpz_cdiv_q(). What I have done is: mpz_t d; mpz_init (d); mpz_set_str (d, "2" , 10); //because I want to find (something)mod2 , d contains 2 now for (int i = nob; i > 0; i--) { mpz_mod(kb[i], b, d); // kb[i] = b % 2 mpz_cdiv_q(b, b, d ); // b /= 2; } for (int i = nob; i > 0; i--) { cout<<kb[i]<<"\n"; } This prints: Please, enter the decimal value: 100 7 0 0 1 1 1 0 0 Press any key to continue . . . Which is wrong. The correct is 01100100 Here is my code: int main() { mpz_t b ; size_t nob; //no. of bits will be here mpz_init (b); //Initialize char k[80]; //My decimal as an string will go here cout << "Please, enter the decimal value: "; cin.getline(k, sizeof k); //decimal value stored as string here mpz_set_str (b, k , 10); //transfer the string into b, assuming base 10 nob = mpz_sizeinbase(b, 2); // find total number of bits in b cout<<nob<<"\n"; mpz_t d; mpz_init (d); mpz_set_str (d, "2" , 10); //because I want to find (something)mod2 mpz_t kb[80000]; //Array. will store my converted binary bits in kb for (int i = nob; i > 0; i--) { mpz_mod(kb[i], b, d); // implementing kb[i] = b % 2 mpz_cdiv_q(b, b, d ); // b /= 2; } for (int i = nob; i > 0; i--) { cout<<kb[i]<<"\n"; } return 0; } Can someone help me solve this issue? Thanks in advance for your valuable inputs. Note: I did not know that the request will be accepted so quickly, so posted it on stackoverflow also , which I can't delete now. -- You received this message because you are subscribed to the Google Groups "mpir-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to mpir-devel+unsubscr...@googlegroups.com. To post to this group, send email to mpir-devel@googlegroups.com. Visit this group at http://groups.google.com/group/mpir-devel. For more options, visit https://groups.google.com/d/optout.