关于在JAVA中轻松“返回”的问题

时间:2014-03-13 11:34:52

标签: java binary return decimal

我想创建一个具有将二进制更改为十进制的函数的代码。

所以我做了一个公开的长篇大论()

并尝试返回Main方法。

但屏幕上显示任何内容。问题出在哪儿? Plz给了我一些提示。

public class Bitmap { 
       byte[] byteArr; //byte array for saving 0 or 1 
       char[] charArr; //char array for casting from string to byte array 

    public static void main(String[] args) throws Exception { 
          Bitmap test1 = new Bitmap("100110"); 
          test1.tonum();              
       } 
    public Bitmap(String val) throws Exception {  
              byteArr = new byte[val.length()];  //To make the array length of Bitmap should e same as that of string
              charArr = val.toCharArray();       //casting from string to char 

              for(int i = 0; i < charArr.length; i++) { 
                 if (charArr[i] == '0')  
                     byteArr[i] = 0; 
                 else if (charArr[i] == '1') 
                     byteArr[i] = 1; 
                 else throw new Exception("Bitmap are should be sequences of zeros and ones!"); 
              } 
           } 

    public long tonum() {
       int temp = 0;
       String str = "";
       String str2 = "";
       for (int i = 0; i < this.byteArr.length; i++){
           temp = this.byteArr[i];
           str = Integer.toString(temp);
           str2 = str2 + str;
       }
       long decimal = (long)Integer.parseInt(str2,10);
       System.out.println(str2);
       return decimal;
   }
}

1 个答案:

答案 0 :(得分:0)

       long decimal = (long)Integer.parseInt(str2,10);

这不会将二进制更改为十进制。它将十进制更改为二进制。而且你首先没有小数,你有一个字符串或二进制的表示。尝试2的基数。但是为什么你有一个char数组和一个字节数组,当你所做的只是解构和重建原始字符串是任何人的猜测。