幾點。首先,你的代碼中實際存在一個錯誤 - 嘗試傳遞它00000000(8個零),看看會發生什麼。
至於效率,您可以節省一些成本。你可以改變你計算長度的位置,你可以計算,這比計算速度要快很多。
public static int getBinaryValue(String sequence){
int value = 1; //have another glance at this line!
for(int i = 0, n=sequence.length(); i < n; i++){
//I declared a variable 'n' in the initialisation, this means its only
//checked once, rather than being checked every time
if(sequence.charAt(i) == '1')
value += 1 << i;
//and here I've bitshifted the value. Basically I've said "take
//the number one and then shift it left down an imaginary binary
//track i times". So if i is three, for example, it'll shift it
//from 00000001 to 00000010 to 00000100 to 00001000, which is 8
//2^3 = 8
}
return value;
}
來源
2017-08-04 06:12:09
MrB
這就是Java的方式... – WizardWy
試試這個:的Integer.parseInt(binaryString,2) – subro
你可以使用的Integer.parseInt(序列,2); ...第二個參數是對的基礎轉換二進制它是2 ... – 100rabh