gpt4 book ai didi

java - 长型整数计算

转载 作者:行者123 更新时间:2023-12-04 05:01:50 24 4
gpt4 key购买 nike

我现在正在制作一个计算长整数的源代码,但我不知道为什么这个计算给了我错误的答案。

long l;
//variable l is where you input long, signed int

l *= 0x6869L;
if(l == 0xeaaeb43e477b8487L)
System.out.println("Correct!");

我做了 0xeaaeb43e477b8487/0x6869 = 0xFFFFCBBB6D375815
但是当我计算 0xFFFFCBBB6D375815 * 0x6869 时会给出 0xEAAEB43E477BA89D。

为什么会发生这样的事情?这个数学问题的真正答案是什么?

最佳答案

这是因为当你除以 0xeaaeb43e477b8487L/0x6869 时,你会失去余数,这会导致精度损失。

0xeaaeb43e477b8487L % 0x6869= -9238

如果我们考虑到这一点,我们会得到
0xEAAEB43E477BA89DL -9238 =  0xeaaeb43e477b8487

这有效
if ((l - 9238) == 0xeaaeb43e477b8487L)
System.out.println("Correct!");

关于java - 长型整数计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16073963/

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