运算符<<不能应用于long和long类型的操作数

时间:2014-11-07 19:33:56

标签: c# bit-shift

我想在<<上使用long运算符,如下所示:

((long) num3) << ( 2 + (long) num4)))

这给了我以下错误:

  

运营商&lt;&lt;不能应用于long和long类型的操作数。

如果我不将num4投射到long,则没有错误。但是,我无法将其保留为int。还有其他方法吗?

1 个答案:

答案 0 :(得分:15)

右操作数必须是int,而不是long。使用long作为要移位的位数是没有意义的,因为C#中的整数类型永远不会超过64位。