用於將十進制數轉換爲其1的補碼並再將該數轉換爲十進制的輸出不如預期的那樣。用於將十進制數轉換爲其補碼的輸出
我的方法
我首先將數字從十進制轉換爲二進制。用1代替所有的Os,代替,然後將該數字轉換爲十進制數。
任何人都可以引導我嗎?我做錯了什麼?
代碼:
public static int complimentDecimal(int num) {
int p = 0;
String s1 = "";
// Convert Decimal to Binary
while (num > 0) {
p = num % 2;
s1 = p + s1;
num = num/2;
}
System.out.println(s1);
// Replace the 0s with 1s and 1s with 0s
for (int j = 0; j < s1.length(); j++) {
if (s1.charAt(j) == 0) {
s1.replace(s1.charAt(j), '1');
} else {
s1.replace(s1.charAt(j), '0');
}
}
System.out.println(s1);
int decimal = 0;
int k = 0;
for (int m = s1.length() - 1; m >= 0; m--) {
decimal += (s1.charAt(m) * Math.pow(2, k));
k++;
}
return decimal;
}
_注意:請不要發佈替代方法approach._爲什麼不呢? –
@Pétur我想親自嘗試一下。我的家庭作業,我需要做。我會作爲一個單獨的線程問。如果我沒有得到 –
@大家都很完美的解釋。現在,我很困惑誰是最好的。 :P +1爲你們所有人。 –