2012-07-31 59 views

回答

5

零填充右移需要特定的整数大小。由于Dart中的整数具有任意精度,因此'>>>'操作符在这里没有意义。

模拟零填充右移的最简单方法是将位和数字第一位。

例子:

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

你可以定义一个效用函数的使用方法:

int zeroFillRightShift(int n, int amount) { 
    return (n & 0xffffffff) >> amount; 
} 

那假设你有32位无符号整数,这是很正常的,如果你确实有。