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中有没有办法实现这种操作呢?

点赞
用户107090
用户107090

使用整数除法:-27//8 得到 -4

2020-07-15 10:42:06