bit-manipulation - 如何在 Dart 中进行按位无符号(零填充)右移?

标签 bit-manipulation dart

如何在 Dart 中执行按位无符号右移/零填充右移?

例如这样的事情:

foo >>> 2

最佳答案

零填充右移需要特定的整数大小。由于 Dart 中的整数具有任意精度,因此“>>>”运算符在那里没有意义。

模拟补零右移的最简单方法是先对数字进行位运算。

示例:

(foo & 0xFFFF) >> 2 // 16 bit zero-fill shift
(foo & 0xFFFFFFFF) >> 2 // 32 bit shift.

2021 年更新:

Dart 整数现在是 64 位。从 Dart 2.14 开始, >>> 运算符会移位 64 位整数并用 0 填充最高有效位。

关于bit-manipulation - 如何在 Dart 中进行按位无符号(零填充)右移?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11746504/

相关文章:

C语言二进制移位运算符

c - K&R 中的位计数函数

android - super.function() 的位置是否会导致代码执行问题?

flutter Firebase错误 "FAILURE: Build failed with an exception"

dart - 包导入-URI的目标不存在

google-api - 使用 double.parse() 在 Dart 中将字符串转换为 double

python - 使用 Python 对 bool 数据进行快速索引和位翻转

c++ - 如何从 bool 结果中获取全 1 或全 0?

android - Flutter AppBar标题与动画进度条重叠

c++ - 如何异或这两个 vector 的内容?