2015-09-09 3 views
0

Я хочу преобразовать только 256 чисел в двоичные без использования if, while и т. Д., Просто используя оператор ? и четыре бинарных оператора.Decimal to Binary Java

Мои программы хорошо работают для чисел от 1 до 64, но после 64 это не сработает! Как я могу это сделать? Я должен сохранить все результаты в переменной b.

public class NaarBinair { 
    public static int g=1,b=0; 

    public static void main(String[] args){ 
     int r1 = g % 2 ;   
     int q1 = g/2 ; 
     int r2 = q1 % 2 ; 
     int q2 = q1/2 ; 
     int r3 = q2 % 2 ;  
     int q3 = q2/2 ; 
     int r4 = q3 % 2 ;  
     int q4 = q3/2 ; 
     int r5 = q4 % 2 ;  
     int q5 = q4/2 ; 
     int r6 = q5 % 2 ;  
     int q6 = r5/2 ; 
     int r7 = q6 % 2 ;  
     int q7 = r6/2 ; 

     String s1 = String.valueOf(r1) ;   
     String s2 = String.valueOf(r2) ; 
     String s3 = String.valueOf(r3) ; 
     String s4 = String.valueOf(r4) ;  
     String s5 = String.valueOf(r5) ; 
     String s6 = String.valueOf(r6) ; 
     String s7 = String.valueOf(r7) ; 

     b = Integer.parseInt(s7 + s6 + s5 + s4 + s3 + s2 + s1) ; 
     System.out.println(b); 
    } 
} 
+1

Неправильно использовать Integer.toBinaryString (int)? –

+2

@MarkW Запахи вроде «Домашнее задание» :-) – dognose

+2

Третичный оператор (?) Является «скрытым». –

ответ

0

Посмотрите на свои линии. Вы видите что-то другое в этих двух строках, по сравнению с другими?

int q6 = r5/2 ; 
// ... 
int q7 = r6/2 ; 

Посмотрите внимательно. (Подсказка: разница составляет всего одну букву).

Если вы исправите ошибки, то это будет работать до 127. Вам нужно будет добавить больше строк, чтобы они работали для большего количества бит.