900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > java 长整型long_关于java:长于Long.MAX_VALUE的长整型

java 长整型long_关于java:长于Long.MAX_VALUE的长整型

时间:2023-03-17 11:39:25

相关推荐

java 长整型long_关于java:长于Long.MAX_VALUE的长整型

如何获得大于long.max_值的长数值?

我希望此方法返回true:

boolean isBiggerThanMaxLong(long val) {

return (val > Long.MAX_VALUE);

}

该方法不能返回true。这就是EDOCX1的观点。如果它的名字是…错误的。那么,它应该被称为Long.SOME_FAIRLY_LARGE_VALUE,并没有任何合理的用途。只需使用Android的isUserAGoat,或者你可以滚动你自己的函数,它总是返回false。

注意,内存中的long采用固定的字节数。来自Oracle:

long: The long data type is a 64-bit signed two's complement integer. It has a minimum value of -9,223,372,036,854,775,808 and a maximum value of 9,223,372,036,854,775,807 (inclusive). Use this data type when you need a range of values wider than those provided by int.

正如你从基础计算机科学或离散数学中所知道的,长时间内可能有2^64个值,因为它是64位的。正如你从离散数学、数论或常识中所知道的,如果只有有限多的可能性,其中之一必须是最大的。那就是Long.MAX_VALUE。所以你会问类似于"是否有一个大于0且小于1的整数?"数学上毫无意义。

如果你真的需要这个,那么使用BigInteger类。

有人应该通过发明远程传输来打破isuseragoat API以太,或者至少为山羊创建一个Android小工具。

@公什假设triangle.lborderA是long,那么您可以删除该支票。如果它优化了,我不会感到惊讶。

要测试的源代码包含判断"triangle.lbordera>0&amp;triangle.lbordera<=long.max_value"。所以我似乎不能让我的单元测试100%覆盖。

@公什试着让lborderA < 0不通过那项检查。同样,你也不能不通过一张写着"EDOCX1"〔3〕的支票。

@我先生,根据这个答案,如果你下载了com.coffeestainstudios.goatsimulator包,那么山羊的传送就可以开始了!

不能。如果有一个名为isBiggerThanMaxLong(long)的方法,它应该始终返回false。

如果要增加Long.MAX_VALUE的位,下一个值应该是Long.MIN_VALUE。读两遍补语,你就会明白为什么。

首先,下面的方法没有编译,因为它缺少返回类型,它应该是Long.MAX_VALUE,而不是Long.MAX_VALUE。

public static isBiggerThanMaxLong(long l){

return l>Long.Max_value;

}

上面的方法不能返回true,因为你比较long值和Long.MAX_VALUE值,看方法签名,你只能通过long,任何long都可以和Long.MAX_VALUE一样大,不能大于。

您可以使用BigInteger类尝试类似的操作:

public static boolean isBiggerThanMaxLong(BigInteger l){

return pareTo(BigInteger.valueOf(Long.MAX_VALUE))==1?true:false;

}

以下代码将返回true:

BigInteger big3 = BigInteger.valueOf(Long.MAX_VALUE).

add(BigInteger.valueOf(Long.MAX_VALUE));

System.out.println(isBiggerThanMaxLong(big3)); // prints true

如果triangle.lborderA确实很长,那么原始代码中的测试是非常正确的,并且没有办法测试它。它也是无用的。

但是,如果triangle.lborderA是双精度的,则比较是有用的,可以进行测试。isBiggerThanMaxLong(1e300)返回真值。

public static boolean isBiggerThanMaxLong(double in){

return in > Long.MAX_VALUE;

}

IsBiggerThanmaxlong(long.max_value+1.0)将返回false。isbiggerthanmaxlong(long.max_value+1024.0)也将返回false。如果doubles>=long.max_value+1025.0,则为真。

@ Samil True。对于任何大于long.max_值的双精度数,它都将返回true,其中有许多。由于浮点取整,long.max_value+1.0不是其中之一。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。