Int64变量需要移位。我正在从数据库文件解析伪数学函数。变量是uint32或int32,所以我确实将它们放入Int64中以平等地处理它们而不会丢失任何内容。在我的一个treenodes中,我需要对Int64进行位移位。

不幸的是,移位运算符不适用于Int64。有我不知道的位移Int64的标准方法吗?

//Int32 Example works
int a32 = 1;
int b32 = 2;
int c32 = a32 >> b32;

//Int64 Example does not compile
Int64 a64 = 1;
Int64 b64 = 2;
Int64 c64 = a64 >> b64; //invalid operator

最佳答案

我相信右移运算符的右手操作数(在C#中)始终采用int,即使左手操作数不是int

官方详细信息在C# Specification on MSDN中。

关于c# - 使用Int64进行位移位,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11343686/

10-12 22:35