首页 > 解决方案 > 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 中做同样的事情?

标签: lua

解决方案


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


推荐阅读