I'm building a program in C that can get powers of 2
. The user inputs the value of n
, and the program calculates 2^n
.
Here's the code.
The problem comes when I input 100
What I am getting:
1,267,650,600,228,229,400,000,000,000,000
What I should get
1,267,650,600,228,229,401,496,703,205,376
It has to be coded entirely in ANSI C. Any ideas on how to increase the precision? The maximum value of N
has to be 256
(256 bits, I imagine, which means the maximum output should be 2^256
).
What I'm lacking here is precision, and I don't know how to fix that. Any ideas?
bignum
solution. For info on what this is, look at wikipedia: en.wikipedia.org/wiki/Arbitrary-precision_arithmetic – Araarab[long] double
types, which aren't appropriate to this integer problem. – Bacillary