【问题标题】:Create Bit Array for negative number in java在java中为负数创建位数组
【发布时间】:2012-06-02 04:31:47
【问题描述】:

给定一个数字,我需要创建一个位数组。 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;
}

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

【问题讨论】:

  • 你了解二进制补码表示吗?你为什么要重新发明轮子而不是使用ByteBuffer?你想解决什么更大的问题?
  • @MattBall 我确实理解 2 的补码表示。只有当值为负时,我才想获得 2 的补码形式的位数组。问题是在不使用任何内置库的情况下创建位数组
  • @user:为什么不能使用内置库?这是作业吗?您应该添加“作业”标签并在您的问题中进行说明。

标签: java negative-number


【解决方案1】:

嗯,最简单的方法应该是

int x; // value 
for (int i = 0; i < 32; i++)
  array[i] = (x & (1 << i)) != 0;

【讨论】:

  • @user - 是的,左侧也是如此......如果我正确理解路易斯所说的话。
猜你喜欢
  • 2019-05-22
  • 1970-01-01
  • 2023-03-11
  • 1970-01-01
  • 2021-04-10
  • 1970-01-01
  • 2011-11-24
  • 2013-01-27
  • 2012-01-10
相关资源
最近更新 更多