如何在java中将数字转换为2的恭维

时间:2016-03-29 06:40:52

标签: java

这是我的代码

String st;
for (int x : comp) {


st = Integer.toBinaryString(x);


 System.out.println("BINARY"+st);
}

这里comp是一个整数数组,我试图得到二进制字符串。 但我想计算comp数组中两个数字的补码。 我可以采取任何方式......

2 个答案:

答案 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