unsignedRightShift method
Implementation
int unsignedRightShift(var a, var b) {
var m;
if (b >= 32 || b < -32) {
m = (b / 32) as int;
b = b - (m * 32);
}
if (b < 0) {
b = 32 + b;
}
if (b == 0) {
return ((a >> 1) & 0x7fffffff) * 2 + ((a >> b) & 1);
}
if (a < 0) {
a = (a >> 1);
a &= 2147483647;
a |= 0x40000000;
a = (a >> (b - 1));
} else {
a = (a >> b);
}
return a;
}