Lua能做算术右移吗?

Lua能做算术右移吗?,lua,Lua,请看下面的代码: x = -27 y = 3 print(x >> y) 这将打印2305843009213693948。由于没有符号位,Lua似乎做了逻辑右移而不是算术右移。在C中执行以下操作时,得到的是-4,大约是-27/8 int64 x = -27; int64 y = 3; int64 z = x >> y; 在Lua中有没有同样的方法?使用整数除法:-27//8给出-4使用整数除法:-27//8给出-4这确实返回-4,但整数除法不应该返回-3?在C中,当进

请看下面的代码:

x = -27
y = 3
print(x >> y)
这将打印
2305843009213693948
。由于没有符号位,Lua似乎做了逻辑右移而不是算术右移。在C中执行以下操作时,得到的是
-4
,大约是
-27/8

int64 x = -27;
int64 y = 3;
int64 z = x >> y;

在Lua中有没有同样的方法?

使用整数除法:
-27//8
给出
-4
使用整数除法:
-27//8
给出
-4

这确实返回
-4
,但整数除法不应该返回
-3
?在C中,当进行整数除法时,我也得到了
-3
。@Andreas-
math.modf(-27/8)
等于
-3
@Andreas,这是由于运算符的优先级:
-27//8
-27//8
相同,并给出了
-4
,而
-27//8)
确实给出了
-3
。这确实返回了
-4
,但整数除法不应该返回
-3
?在C中,当进行整数除法时,我也得到了
-3
。@Andreas-
math.modf(-27/8)
等于
-3
@Andreas,这是由于运算符的优先级:
-27//8
-27//8
相同,并给出了
-4
,而
-27//8
给出了
-3