2014-09-04 3 views
-3

Я делаю проект преобразования десятичного числа в двоичный. Но у меня есть проблема, которая, как я могу преобразовать любое введенное число в двоичный (я использую массив), вот мой код:java-convert decimal для любого двоичного бита

public void Decimal2Binary(int a) 
{ 
    int result []=new int[8]; 
    for (int i = 7;i >=0; i--,a/=2) { 
     result[i]=a%2; 
} 

мне не нужно его всего лишь 8-битный двоичный результат, но , Мне нужно это для любого размера.

+0

Почему вы не передать его в качестве аргумента? – Maroun

+1

'Integer.toBinaryString()'? – icza

+0

Дубликат http://stackoverflow.com/questions/14784630/converting-decimal-to-binary-java?rq=1, http://stackoverflow.com/questions/13147413/convert-decimal-to-binary?rq = 1, http://stackoverflow.com/questions/22008606/converting-decimal-to-binary-in-java-having-trouble-with-reversing-order?rq=1, и (кроме того) не очень понятно , – Marco13

ответ

0

используйте эту функцию Integer.toBinaryString (int) ... и почему вы хотите, чтобы она была в массиве? не может быть списком массивов или большим десятичным числом.

0

Фактически вы не указываете выход, но здесь идет.

Принимая неподписанные (как вам кажется).

StringBuilder result = new StringBuilder(); 
while(a > 0) { 
    result.append(a % 2); 
    a = a/2; // This will round down automatically. ;) 
} 

Если вам нужно обрабатывать отрицательные числа, я хотел бы сделать побитовое сравнение с помощью оператора & - вы можете также использовать >> для разделения, но я уезжаю, что оптимизация для компилятора, чтобы сохранить источник более читаемым ,

, очевидно, вы могли бы изменить, что в какой-либо форме Append

+0

, если вы действительно хотите, чтобы это было как вывод строки, я бы предложил использовать стандартную функциональность, но если вы хотите управлять битами в любых формах, которые вы получаете, это дает вам этот контроль. –

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