= 32 || $b < -32) { $m = (int) ($b / 32); $b -= $m * 32; } if ($b < 0) { $b = 32 + $b; } if ($b == 0) { return (($a >> 1) & 0x7fffffff) * 2 + (($a >> $b) & 1); } if ($a < 0) { $a >>= 1; $a &= 0x7fffffff; $a |= 0x40000000; $a >>= $b - 1; } else { $a >>= $b; } return $a; } }