16-разрядные двоичные начальные нули

#java #binary #translate

#java #двоичный #перевести

Вопрос:

Я использую метод перевода 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. Как я могу это сделать?

Ответ №1:

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

 anyLines[i] = Integer.toBinaryString(131072   (Integer.parseInt(anyLines[i]))).substring(1, 17);
  

Ответ №2:

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

Комментарии:

1. «добавить достаточное количество нулей спереди» — попробуйте использовать слова «добавлять» или «префикс» — добавление спереди — это оксюморон.