2015-09-09 68 views
0

我只想通過使用?運算符和四個二元運算符,只將256個數字轉換爲二進制,而不使用if,while等。十進制到二進制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

高等運營商(?)是僞裝的「if」。 –

回答

0

看看你的臺詞。與其他人相比,你看到這兩行中有什麼不同嗎?

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

仔細看。 (提示:差異只是一個字母)。

如果您修復了錯誤,它將最多可以處理127個錯誤。您必須添加更多行以使其工作更多位。