16-битные двоичные ведущие нули - PullRequest
1 голос
/ 24 мая 2011

Я использую метод перевода toBinaryString следующим образом:

for (i=0; i<anyLines.length; i++) {

            if (anyLines[i].startsWith("@")) {
                anyLines[i] = anyLines[i].replace("@","");
                anyLines[i] = Integer.toBinaryString((Integer.parseInt(anyLines[i])));
            }
            else {
                continue;
            }

Но когда я пишу в файл, длина двоичного файла составляет всего 2 бита, хотя я хочу 16-разрядный двоичный файл со всеми нулями. Например, 2 переводится как 10, хотя я хотел бы иметь 0000000000000010. Как я могу это сделать?

Ответы [ 2 ]

6 голосов
/ 24 мая 2011

Просто добавьте 2 ^ 17 и substring всю строку:

anyLines[i] = Integer.toBinaryString(131072 + (Integer.parseInt(anyLines[i]))).substring(1, 17);
2 голосов
/ 24 мая 2011

После того, как вы задали двоичную строку, просто проверьте длину строки и добавьте достаточно нулей в начало строки, чтобы сделать ее длиной 16 символов.

...