0

给定一个数字,我需要创建一个位数组。value并且width数量是已知的。对于正数,我这样做了:

int[] createbitarr(int value, int width)
{
    int _val = value;
    int bitarr[]=new int[width];
    for (int i=0;value>0;i++)
    {
    bitarr[bitarr.length-i-1]=value%2;
    value=value/2;
    }
    value=_val;
    return bitarr;
}

这仅在值为正时才有效。如果值为负,我如何创建位数组?

4

1 回答 1

0

好吧,最简单的方法是

int x; // value 
for (int i = 0; i < 32; i++)
  array[i] = (x & (1 << i)) != 0;
于 2012-06-02T04:44:34.807 回答