Целое число в двоичный массив - PullRequest
13 голосов
/ 16 ноября 2011

Я пытаюсь преобразовать целое число в 7-битный логический двоичный массив.Пока код не работает: если я введу, скажем, целое число 8 для преобразования, вместо 0001000 я получу 1000000, или скажу 15, я должен получить 0001111, но я получу 1111000. Массив char отличается от длины двоичного массиванеправильные позиции.

public static void main(String[] args){

    String maxAmpStr = Integer.toBinaryString(8);
    char[] arr = maxAmpStr.toCharArray();
    boolean[] binaryarray = new boolean[7];
    for (int i=0; i<maxAmpStr.length(); i++){
        if (arr[i] == '1'){             
            binaryarray[i] = true;  
        }
        else if (arr[i] == '0'){
            binaryarray[i] = false; 
        }
    }

    System.out.println(maxAmpStr);
    System.out.println(binaryarray[0]);
    System.out.println(binaryarray[1]);
    System.out.println(binaryarray[2]);
    System.out.println(binaryarray[3]);
    System.out.println(binaryarray[4]);
    System.out.println(binaryarray[5]);
    System.out.println(binaryarray[6]);
}

Любая помощь приветствуется.

Ответы [ 11 ]

0 голосов
/ 16 ноября 2011

Integer.toBinaryString(int i) не дополняет. Например, Integer.toBinaryString(7) печатает 111 не 00000111, как вы ожидаете. Это необходимо учитывать при принятии решения о том, с чего начать заполнение вашего логического массива.

...