2
我現在正在做一個計算長整數的源代碼,但我不知道爲什麼這個計算給了我錯誤的答案。長整數計算
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 2013-04-18 03:27:35
這是Java語言。但我認爲每種語言在使用64位整數時都有同樣的問題。 – Nagi 2013-04-18 03:28:08
無論如何,你爲什麼期待'0xeaaeb43e477b8487L'?這三個十六進制數組合在一起的意義是什麼? – Makoto 2013-04-18 03:34:43