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
。