0

数値を指定して、ビット配列を作成する必要があります。valuewidthその数はわかっています。正の数の場合、私は次のようにしました。

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 に答える