How to add two numbers of any length in java?
Say for example, in java long size is 64 bit. So the maximum range is -9223372036854775808 to 9223372036854775807. Am i right?
So if we want to add a number which is greater than this like below, i got a error
" Integer Number too large"
long a = 9223372036854775807L;
long b = 9223372036854775808L;
In C, we can take those numbers as char array, by traversing through the address of each char and use some data structure, we can add two numbers of any size.
How to do it java. Can we traverse through the address of each character in String.
Thanks for your responses.
I have tried to code by passing the numbers as string and add each character from the end. It works fine for me.
Is there any big difference between the addition of two very large numbers using BigInteger and the method, i specified above (add each character from end and store remainder in temporary variable and goes on). Is the underlying mechanism of BigInteger is same as my code(add each character from end)?
Thanks.
The sum() method of Java Long class is used to add two long values according to the '+' operator.
Adding Numbers and StringsJava uses the + operator for both addition and concatenation. Numbers are added. Strings are concatenated.
1) Reverse both strings. 2) Keep adding digits one by one from 0'th index (in reversed strings) to end of smaller string, append the sum % 10 to end of result and keep track of carry as sum/10. 3) Finally reverse the result.
You can use a BigInteger
.
BigInteger a = new BigInteger("9223372036854775807");
BigInteger b = new BigInteger("9223372036854775808");
BigInteger result = a.add(b);
The BigInteger
will let you work with numbers of any size, but you lose a considerable amount of performance over long
or int
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With