2012-07-31 65 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位無符號整數,這是很正常的,如果你確實有。