我有以下任务:
计算
x/(2^n),用于0 <= n <= 30使用位移.要求:向零舍入.
例子:
Run Code Online (Sandbox Code Playgroud)divpwr2(15,1) = 7 divpwr2(-33,4) = -2法律经营者:
! ~ & ^ | + << >>最大运营商数量:15
这是我到目前为止所得到的:
public int DivideByPowerOf2(int x, int n)
{
//TODO: find out why DivideByPowerOf2(-33,4) = -3 instead of -2
return x >> n;
}
Run Code Online (Sandbox Code Playgroud)
DivideByPowerOf2(15,1) = 7 没关系.
但DivideByPowerOf2(-33,4) = -3不是-2.为什么?