这是我的代码
String st;
for (int x : comp) {
st = Integer.toBinaryString(x);
System.out.println("BINARY"+st);
}
这里comp是一个整数数组,我试图得到二进制字符串。 但我想计算comp数组中两个数字的补码。 我可以采取任何方式......
答案 0 :(得分:0)
这里有一个方法来补充java中的二进制字符串
public static String compliment2(String s) {
char[] arr = s.toCharArray();
boolean change = false;
for (int i = arr.length-1; i >= 0; i--) {
if (change) {
if (arr[i] == '1') arr[i] = '0';
else arr[i] = '1';
}
else if (arr[i] == '1') change = true;
}
return new String(arr);
}
你要做的是从右到左阅读所有的比特。一旦找到第一个'1',就必须开始将剩余的位交换到左边。
答案 1 :(得分:0)
使用〜一元运算符,因为是按位否定。 之后你需要加1。
int foo = 117;
food = ~foo + 1;
2补充= 1补充+1