我一直在将一些 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));