私はいくつかの Java コードを C# に変換していて、ちょっとした問題に遭遇しました。MSDN のすべてのドキュメントは、すべてのビット演算が演算対象の型を返すことを示唆しています。参照: http://msdn.microsoft.com/en-us/library/aa691307(v=vs.71).aspxおよびhttp://msdn.microsoft.com/en-us/library/aa691377(v=vs .71).aspxしかし、私が何をしても、私のインテリセンスは、「型 'long' を 'int' に暗黙的に変換することはできません」と言い続けます。次の行は問題のある行であり、私には、そこにあるすべてのリテラルは int に評価されるように見え、操作されるすべての型は int または uint のいずれかです。私は何が欠けていますか?ファイルで長い変数を宣言することさえしません。以下のすべての変数は int 型です。
int t1 = ((s13 << 96 - 66) | ((uint)s12 >> 66 - 64)) ^ ((s13 << 96 - 93) | ((uint)s12 >> 93 - 64));