Java 带二进制转换的简单计算器

Java 带二进制转换的简单计算器,java,netbeans-7.3,Java,Netbeans 7.3,有两个问题: 调用getText()时,我如何让comp知道输入值是二进制数还是普通数?(我的第一个for循环) 二进制转换器未按计划工作 代码摘录: long a,b; int c=0,d=0; String sa,sb; sa=txt1.getText(); sb=txt2.getText(); a=Long.parseLong(txt1.getText()); b=Long.parseLong(txt2.getText());

有两个问题:

  • 调用getText()时,我如何让comp知道输入值是二进制数还是普通数?(我的第一个for循环)

  • 二进制转换器未按计划工作

  • 代码摘录:

        long a,b;
        int c=0,d=0;
        String sa,sb;
        sa=txt1.getText();
        sb=txt2.getText();
        a=Long.parseLong(txt1.getText());
        b=Long.parseLong(txt2.getText());
        int la,lb,ia,ib;
        double ansa = 0,ansb = 0,mainans = 0;
        la=sa.length();
        lb=sb.length();
        if(a>999&&b>999)        
        {
           for(ia=la;ia>=0;ia--)
           {
               if(sa.charAt(ia)=='1')
               {
                   double adda;
                   adda=Math.pow(2,ia);
                   ansa+=adda;
               }
               else
                   ansa+=0;      
           }
           for(ib=lb;ib>=0;ib--)
           {
               if(sb.charAt(ib)=='1')
               {
                   double addb;
                   addb=Math.pow(2,ia);
                   ansb+=addb;
               }
                   else
                   ansa+=0;      
           }      
        }
        else
        {
            ansa=a;
            ansb=b;    
        }
            if(btn1.isSelected()==true)
            mainans=ansa+ansb;
            else
                if(btn2.isSelected()==true)
                mainans=ansa-ansb;
            else 
                if(btn3.isSelected()==true)
                    mainans=ansa*ansb;
                else
                    if(btn4.isSelected()==true)
                        mainans=ansa/ansb;
    
             txt3.setText(""+mainans);
    
            // TODO add your handling code here:
    
    1) 我会用两个单选按钮在二进制和base10之间来回切换。菜单也有用。否则,二进制数的前缀是否为0b?如果有人输入“10”,则无法判断这是数字10还是二进制2

    2) Integer包装器类有一个静态方法toBinaryString(int i),如下所示:

    //returns 1010001111
    Integer.toBinaryString(655);
    
    3) 转换成字符串 将数字转换为字符串

    //Java automatically converts the expression to a string
    String s = 1010001111 + "";
    
    //or use toString() method
    Integer myInteger = new Integer(655);
    myInteger.toString();
    

    问题不包含问题。谢谢:)以及任何将二进制数转换为二进制数并转换为字符串的方法?或者您可以给我一个代码来转换吗?