gpt4 book ai didi

java - 等效于 C++ long long 的 BigInteger 值

转载 作者:搜寻专家 更新时间:2023-10-31 00:10:11 24 4
gpt4 key购买 nike

我正在将一些代码库从 C++ 迁移到 Java,在我需要迁移的 C++ 代码中遇到 long long 值。

在一些研究中,我发现我应该使用 BigInteger 来表示 C++ 的 long long

我看了几个例子,发现语法是:

static BigInteger flag1 = BigInteger.valueOf(0x00000001); 

在这里我注意到 BigInteger.valueOf 参数中使用的值与原始 long long 值不同,后者是 0x0000000000000001LL

原始值有 16 位数字,而这个有 8 位数字,并且末尾不包含 LL 后缀。有人可以解释发生了什么吗?

此外,如果他们可以用类似的术语建议 0x0000000000000200LL 的值。

最佳答案

请注意:所有那些零……都无关紧要。 0x1没有区别;和 0x001,依此类推。只要我们谈论的是数字

如果将它们表示为字符串,那将是另一回事;那么当然“0x1”与“0x01”不是同一个字符串。但是,他们不是。

您所有的值都是数字文字;它们都在一个范围内,甚至可以放入 Java 中的普通 long 值。

换句话说:前导零数字对数字无关紧要(除了像 010 这样的例子,它不是 10;因为从 0 开始表示八进制数)。

实际上更有趣的问题是:编译器为此将什么字面值放入 java 字节码。

关于java - 等效于 C++ long long 的 BigInteger 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39422338/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com