現在、長整数を計算するソース コードを作成していますが、この計算で間違った答えが返される理由がわかりません。
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 が得られます。
なぜこのようなことが起こるのですか?そして、この数学の問題の本当の答えは何ですか?