简单的计算器二进制转换

时间:2013-07-10 14:18:22

标签: java netbeans-7.3

有两个问题:

  1. 当我调用getText()时,我怎么能让comp知道输入值是二进制数还是正常数? (我的第一个循环)

  2. 二进制转换器未按计划运行

  3. 代码提取:

        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 个答案:

答案 0 :(得分:1)

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();