标签: c# bit-shift
我想在<<上使用long运算符,如下所示:
<<
long
((long) num3) << ( 2 + (long) num4)))
这给了我以下错误:
运营商&lt;&lt;不能应用于long和long类型的操作数。
如果我不将num4投射到long,则没有错误。但是,我无法将其保留为int。还有其他方法吗?
num4
int
答案 0 :(得分:15)
右操作数必须是int,而不是long。使用long作为要移位的位数是没有意义的,因为C#中的整数类型永远不会超过64位。