Теперь я делаю исходный код, который вычисляет длинные целые числа, но я не знаю, почему этот расчет дает мне неправильный ответ.Длинный тип Целочисленный расчет
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.
Почему это происходит? и каков реальный ответ на этот математический вопрос?
Какой язык программирования это в? – Acebulf
это язык Java. но я думаю, что каждый язык имеет такую же проблему, когда я использую 64-битное целое число. – Nagi
Почему вы ожидаете '0xeaaeb43e477b8487L', так или иначе? Каково значение этих трех магических шестнадцатеричных чисел, объединенных вместе? – Makoto