我想创建一个具有将二进制更改为十进制的函数的代码。
所以我做了一个公开的长篇大论()
并尝试返回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;
}
}
答案 0 :(得分:0)
long decimal = (long)Integer.parseInt(str2,10);
这不会将二进制更改为十进制。它将十进制更改为二进制。而且你首先没有小数,你有一个字符串或二进制的表示。尝试2的基数。但是为什么你有一个char数组和一个字节数组,当你所做的只是解构和重建原始字符串是任何人的猜测。