2015-09-09 69 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个错误。您必须添加更多行以使其工作更多位。