我现在正在制作一个计算长整数的源代码,但我不知道为什么这个计算给了我错误的答案。
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。
为什么会发生这种事情?这个数学问题的真正答案是什么?