0

を取得する必要があります。x%16ここで、x はlongです。私のコンパイラは私にエラーを与えます

「精度が失われる可能性があります。必須: int; 検出: long.」

どうすればこれを回避できますか?

編集:おっと、すべてをintとしてキャストできることに気づきませんでした。longをintとしてキャストすることしかできないと思いました(これは悪いことです)。

4

1 に答える 1

0

次の 2 つのことを試すことができます。

  1. x % 16L
  2. x & 0x0000000FL// ゼロは必要ありません。0xFL が機能するはずです。

これらの手法は両方とも、long精度を失うことなく をもたらします。が必要な場合は、操作する前にintx をにキャストし、L サフィックスを削除します。int

于 2013-04-11T03:36:33.080 に答える