2013-04-11 55 views
0

我需要得到x%16,其中x是long。我的編譯器給我的錯誤使用int和long進行操作

「可能的精度損失。required:int; found:long。」

我該如何解決這個問題?

編輯:哎呀,我沒有意識到我可以把整個東西都當作一個整型,我認爲它只能把int作爲一個整型(這會很糟糕)才能使它合作。

回答

0

有兩件事情可以嘗試:

  1. x % 16L
  2. x & 0x0000000FL //你不需要零; 0xFL應該可以工作。

這兩種技術都會導致long而不會丟失精度。如果你想要一個int,在對它進行操作之前,只需將x轉換爲int,並刪除L後綴。

相關問題