2014-01-03 2 views
0

У меня есть программа, которая преобразует десятичное число в двоичное число. Я хочу, чтобы двоичное представление имело 32 цифры, поэтому мне часто нужно добавить 0 в начале двоичного представления. Как я могу это достичь?Добавьте нули в начале 32-битного двоичного числа.

Пример:

decimal: 
    9999999 
binary: 
    00000000 01001100 01001011 00111111 

Это код, у меня уже есть: Код:

class Binaer { 

    public static void main(String [] args) { 
     java.util.Scanner scanner = new java.util.Scanner(System.in); 

     long a = scanner.nextLong(); 

     while (a != 0) { 
      System.out.println(Integer.toBinaryString(a)); 
     } 
    } 
} 
+3

английский язык пожалуйста. –

+1

In Inglés Bitte – Reimeus

+2

Этот вопрос кажется не по теме, потому что его нет на английском языке – Mureinik

ответ

0

Вы можете использовать String.format или StringBuilder:

java.util.Scanner scanner = new java.util.Scanner(System.in); 
int a = scanner.nextInt(); 
StringBuilder sb = new StringBuilder(); 
for(int i = 0; i < Integer.numberOfLeadingZeros(a); i++) 
    sb.append('0'); 
sb.append(Integer.toBinaryString(a)); 
System.out.println(sb.toString()); 
2

Легко, просто использовать String.format:

public static void main(String[] args) throws InterruptedException { 
    final int i = 7; 
    final String s = String.format("%32s", Integer.toBinaryString(i)).replace(' ', '0'); 
    System.out.println(s); 
} 

Первый бит - String.format("%32s", Integer.toBinaryString(i)) - форматирует int в виде двоичного String, который заполняется от начала до 32 символов. Второй бит - replace(' ', '0') - заменяет начальные пробелы нулями.

+0

Почему «я» и '' окончательный? –

+0

@Steve, потому что они не должны быть переменными. –

0

Во-первых, если вы используете Integer.toBinaryString (a), то a должно быть целым. Затем, вы можете подушечка полученную строку с помощью string.Format:

number = Integer.toBinaryString(a); 
paddedNumber = String.format("%32s", number).replace(' ', 0); 

формат обеспечит paddedNumber имеет 32 знаков, добавляя пробелы в начале, если это необходимо. Затем замена заменит пробелы знаками «0».

Смежные вопросы