因此,我正在研究一个简单的二进制到十进制脚本,并且在乘以功率时可能会出现精度损失的情况。这是所讨论的代码块,它所做的只是将二进制中的1和0的值乘以字符串长度的大小减去循环所经历的迭代次数。然后将结果添加到z中,并重复。乘以权力可能会导致精度损失?
public int decimal(String x){
int z=0;
for(int a=0;a<x.length();a++){
z=z+Integer.parseInt(x.substring(a,a+1))*Math.pow(2,x.length()-a);
}
return z;
}
整个问题的关键在于将二进制数转换为整数,再次感谢提及替换权力。 – jocopa3 2012-04-24 22:07:36
@ jocopa3:如果你想像''10010“'这样的二进制转换为int(在这种情况下为18),我已经给了你一行代码,它更快,更安全,更易读。 – 2012-04-24 22:17:20
+1:Math.pow非常昂贵,而转移是最便宜的操作。 – 2012-04-25 05:35:21