私は10進数のスクリプトに単純なバイナリを使用していましたが、電源を掛けたときに精度が低下する可能性がある場所でエラーが発生しました。これは問題のコードブロックであり、2と2の2進数の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
@ jocopa3: '" 10010 "'のようなバイナリをint(この場合は18)に変換したい場合、私はあなたに一行を与えました。これはずっと速く、より安全で読みやすいです。 –
+1:Math.powは非常に高価ですが、shiftは最も安い操作です。 –