用于将十进制数转换为其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为你们所有人。 –