我如何在java中扩展数据类型

时间:2012-04-11 13:07:03

标签: java

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

java中最长的数据类型是“long”,它是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 个答案:

答案 0 :(得分:5)

  

现在的问题是我在java中没有这样的数据类型,可以存储26位或更多的巨大值。

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

答案 1 :(得分:4)

  

现在问题是我在java中没有这样的数据类型可以存储如此巨大的值

这不是真的。有BigInteger

有关使用BigInteger的因子的实现,请参见this answer