2012-04-11 88 views
0

我如何在Java中创建自己的数据类型,它可以存储16个字节的整数值如何延长在java中的数据类型

由大小最长的数据类型在Java中“长”,这是8字节,它可以存储19位整数值,但是,我想要找到25的阶乘,25的阶乘是26位(15511210043330985984000000)。现在的问题是我没有这样的数据类型的Java可以存储如此巨大的26位或更多的值。

如果有任何

public long factorial(int number) 
{ 
    int i=1; 
    long factorial=1; 

    for(i=1;i<=number;i++) 
    { 
     factorial = factorial * i; 
    } 
    return factorial; 
} 
+2

[BigInteger](http://docs.oracle.com/javase/6/docs/api/java/math/BigInteger.html) – Richante 2012-04-11 13:08:14

+0

似乎是你需要做一个类,它可以存储16个字节或更多数据值,您需要以自己的方式或实际需要的方式实现显式算术或逻辑操作。如果你可以使用字符串来实现,这可能是n个字节。它将通过通用。 – 2012-04-11 13:11:40

回答

5

现在的问题是我没有这样的一个数据类型,可以存储如此庞大的26位或更多的价值的java。

你看了看java.math.BigInteger?请注意,这是一个类(一种引用类型),而不是一种值类型,但它是不可变的,这意味着您可以认为它有点像价值。

4

现在的问题是我没有这样的数据类型在Java中,可以存储这些巨大的价值

这并不完全正确。有BigInteger

有关实施使用BigInteger的阶乘的实现请参见this answer