Java 如何创建一个程序,将0和1随机分配给数组元素并查找其十进制值

Java 如何创建一个程序,将0和1随机分配给数组元素并查找其十进制值,java,arrays,Java,Arrays,我写这段代码是为了找到以符号大小表示的8位十进制值。因此,我创建了一个数组,并在0-1之间随机分配值,然后打印位模式和它的真正十进制值。在Java中还有比这更简单的方法吗 import java.util.Random; class Example { public static void main(String args[]) { Random r = new Random(); int A[] = new int[20]; for (

我写这段代码是为了找到以符号大小表示的8位十进制值。因此,我创建了一个数组,并在0-1之间随机分配值,然后打印位模式和它的真正十进制值。在Java中还有比这更简单的方法吗

import java.util.Random;

class Example {
    public static void main(String args[]) {
        Random r = new Random();
        int A[] = new int[20];
        for (int i = 0; i < A.length; i++) {
            int count = 1, k = 6, l = 0, m = 0;
            for (int j = 0; j < 8; j++) {
                A[i] = r.nextInt(2);
                System.out.print(A[i]);
                if (count == 1) {
                    if (A[i] == 1) {
                        m = -A[i];
                    } else {
                        m = 1;
                    }
                } else {
                    double d = Math.pow(2, k);
                    l += (int) d * A[i];
                    k--;
                }
                count++;
            }
            System.out.println(" = " + (l * m));
        }
    }
}
import java.util.Random;
课例{
公共静态void main(字符串参数[]){
随机r=新随机();
int A[]=新int[20];
for(int i=0;i
您可以尝试创建一个随机的二进制字符串,然后使用JAVA的字符串到十进制转换器Integer.parseInt(string,base)将该字符串转换为十进制值,下面是一个示例:`

String randBinaryNumber;
char sign;

for(int i = 0; i < 8; i++){
// creates binary string 
randBinaryNumber += Integer.toString(r.nextInt(2));
}
//gets sign of randBinaryNumber
sign = randBinaryNumber.charAt(0);

// removes first character of string
randBinaryNumber = randBinaryNumber.substring(1);

// converts string to decimal
int decimal = Integer.parseInt(randBinaryNumber,2);

if(sign == '1')
  decimal *=-1;
而不是:

 randBinaryNumber += Integer.toString(r.nextInt(2));
这会将字符串值存储在一个对象中,而不是每次添加二进制数字时都创建一个新对象

 randBinaryNumber += Integer.toString(r.nextInt(2));