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
.
推荐阅读
- c++ - 在 C++11 中保存时间戳
- ruby-on-rails - 解析 .erb 文件并返回字符串/Ruby 标记中的所有内容
- php - 未捕获的错误:不在连接到 DB 的受保护函数的对象上下文中使用 $this
- docker - 将程序转换为 docker 容器
- flutter - 为什么 ChangeNotifierProvider.value 不更新其构建器?
- groovy - SoapUI - 来自 groovy 的控制流
- javascript - 计算 svg 的实际大小,考虑笔画和变换
- python - 读取 csv 文件时出现解析器错误,当在列表中给出时,它给出相同的错误我应该怎么做才能避免错误
- java - 如何在android中制作响应式图像动画?
- javascript - 我们如何在Angular8中的2个按钮之间切换类