您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> Java >> 现有一个32 位的整型变量 value 和一个有32 个元素的数组a[32]

现有一个32 位的整型变量 value 和一个有32 个元素的数组a[32]

来源:网络整理     时间:2016/7/25 15:59:47     关键词:

关于网友提出的“ 现有一个32 位的整型变量 value 和一个有32 个元素的数组a[32]”问题疑问,本网通过在网上对“ 现有一个32 位的整型变量 value 和一个有32 个元素的数组a[32]”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: 现有一个32 位的整型变量 value 和一个有32 个元素的数组a[32]
描述:

描述:现有一个32 位的整型变量 value 和一个有32 个元素的数组a[32],要求:1、对value 随机赋值; 2、让数组a[n]的值等于value“位n”的值,0<=n<=31。举例:如果value 的“位0”(Bit0)=0,那 么a[0]=0;如果value 的“位10”(Bit10)=1,那么a[10]=1。
/**
 * :1、对value 随机赋值;
 * 2、让数组a[n]的值等于value“位n”的值,0<=n<=31。
 * @author Administrator
 */
public class Foo {
    public static void main(String[] args) {
        // 产生随机数
        int random = (int) (Math.random() * Integer.MAX_VALUE) + 1;
        // 转换成二进制字符串
        String str = Integer.toBinaryString(random);
        // 转换成二进制时最前面的零被省略, 补上省略的0
        if (str.length() < 32) {
            for (int i = 0; i < 32 - str.length(); i++) {
                str = "0" + str;
            }
        }
        // 给数组赋值
        int[] a = new int[32];
        for (int i = 0; i < str.length(); i++) {
            a[i] = Integer.parseInt(String.valueOf(str.charAt(i)));
            System.out.println("a[" + i + "]=" + a[i]);
        }
    }
}


产生数组长度应是32,但是答应结果却不统一,有32,有31,这是为什么


结果一:
a[0]=0
a[1]=0
a[2]=1
a[3]=1
a[4]=0
a[5]=0
a[6]=0
a[7]=1
a[8]=0
a[9]=0
a[10]=0
a[11]=0
a[12]=0
a[13]=0
a[14]=0
a[15]=0
a[16]=0
a[17]=1
a[18]=1
a[19]=0
a[20]=0
a[21]=1
a[22]=0
a[23]=0
a[24]=0
a[25]=1
a[26]=0
a[27]=1
a[28]=1
a[29]=0
a[30]=0
结果二:
a[0]=0
a[1]=1
a[2]=0
a[3]=1
a[4]=1
a[5]=1
a[6]=1
a[7]=0
a[8]=0
a[9]=0
a[10]=0
a[11]=0
a[12]=1
a[13]=0
a[14]=0
a[15]=1
a[16]=0
a[17]=1
a[18]=0
a[19]=1
a[20]=0
a[21]=1
a[22]=1
a[23]=1
a[24]=1
a[25]=0
a[26]=0
a[27]=1
a[28]=0
a[29]=0
a[30]=0
a[31]=1

不太明白,那位大神帮忙看看这是咋回事?


解决方案1:


if (str.length() < 32) {
  for (int i = 0; i < 32 - str.length(); i++) {
  str = "0" + str;
  }
  }

上面这段代码,循环一次,str长度改变一次,判断条件就减少一次。应该不能让终止条件改变。
稍改一下:

if (str.length() < 32) {
  for (int i = 0,length = str.length(); i < 32 - length; i++) {
  str = "0" + str;
  }
  }

以上介绍了“ 现有一个32 位的整型变量 value 和一个有32 个元素的数组a[32]”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2916746.html

相关图片

相关文章