java 中的 40 位整数使用什么数据类型
What datatype to use for 40 digit integers in java
例如
第一个数字=123456.......40位
第二个数字 = 123456.......40 位
然后我需要存储号码
third = first * second;
之后我需要打印第三次,然后我需要执行类似
的操作
fourth = third * third;
并打印第四个。那么我该如何处理我需要使用的数据类型那么长的整数呢?
在java.math
中使用BigInteger
class,然后使用BigInteger.multiply
将它们相乘
点击这里了解更多关于如何使用它的信息:
https://www.tutorialspoint.com/java/math/biginteger_multiply.htm
看到这个问题类似Arbitrary-precision arithmetic Explanation
答案解释的很好
基本原理是您使用较小的零件。请记住您在学校(2-3 年级)是如何学会使用大数字的,您写下了两个数字,然后
2351
*12
-----
4702
2351
------
28212
您只需执行一些小操作并将它们存储在某个地方,您可以将它们放在字符串中或更好地放在某个整数数组中。例如
号码 123456789123456789 可以
数字[0] = 6789
数字[1] = 2345
数字[3] = 7891
数字[4] = 2345
数字[5] = 1
字符串 numberToShow = "";
对于(整数我= 0;我
有一些计算机算术链接
https://en.wikipedia.org/wiki/Category:Computer_arithmetic
和加法器
https://en.wikipedia.org/wiki/Category:Adders_(electronics)
在您的计算机中,您基本上也只有一些加法器,它们只能处理一定数量的数字,如果您需要处理更大的数字,则需要将其分成更小的部分。
其中一些部分可以并行完成,因此您可以加快算法速度。这些通常更复杂。
但基本原理类似于在小学中处理大量数据。
例如
第一个数字=123456.......40位
第二个数字 = 123456.......40 位
然后我需要存储号码
third = first * second;
之后我需要打印第三次,然后我需要执行类似
的操作fourth = third * third;
并打印第四个。那么我该如何处理我需要使用的数据类型那么长的整数呢?
在java.math
中使用BigInteger
class,然后使用BigInteger.multiply
将它们相乘
点击这里了解更多关于如何使用它的信息: https://www.tutorialspoint.com/java/math/biginteger_multiply.htm
看到这个问题类似Arbitrary-precision arithmetic Explanation 答案解释的很好
基本原理是您使用较小的零件。请记住您在学校(2-3 年级)是如何学会使用大数字的,您写下了两个数字,然后
2351 *12 ----- 4702 2351 ------ 28212
您只需执行一些小操作并将它们存储在某个地方,您可以将它们放在字符串中或更好地放在某个整数数组中。例如
号码 123456789123456789 可以 数字[0] = 6789 数字[1] = 2345 数字[3] = 7891 数字[4] = 2345 数字[5] = 1 字符串 numberToShow = ""; 对于(整数我= 0;我有一些计算机算术链接 https://en.wikipedia.org/wiki/Category:Computer_arithmetic 和加法器 https://en.wikipedia.org/wiki/Category:Adders_(electronics)
在您的计算机中,您基本上也只有一些加法器,它们只能处理一定数量的数字,如果您需要处理更大的数字,则需要将其分成更小的部分。
其中一些部分可以并行完成,因此您可以加快算法速度。这些通常更复杂。
但基本原理类似于在小学中处理大量数据。