【发布时间】:2021-02-24 15:56:51
【问题描述】:
程序的大多数输入都可以正常工作,但是当我使用大数字时,例如20 值不正确。有没有办法可以转换十进制数字并将它们输出为二进制?谢谢。
int n = Comp122.getInt("What number would you like to make a factorial?");
int factorial = 1;
for (int i = 1 ; i<=n ; i++) {
factorial*=i;
System.out.println(factorial);
}
【问题讨论】:
-
20的阶乘为2432902008176640000,大于int的最大值。您以后如何显示该 int(无论是十进制、二进制还是以 42 为基数)不会改变 int 不能用于保存这么大的数字的事实。如果您使用的数字很容易大于 Integer 或 Long 最大值,那么您必须使用没有最大值的类(如
BigInteger)而不是原始数据类型, -
大概this post可以帮到你。