小编mak*_*rus的帖子

反转最后一位

如何反转最后一位int

int a = 11;
System.out.print(a + " " + Integer.toBinaryString(a)) //11 1011

int b = invertLastBit(a);
System.out.print(b + " " + Integer.toBinaryString(b)); //10 1010
Run Code Online (Sandbox Code Playgroud)

我写了这个:

static int invertLastBit(int i)
{
    String s = Integer.toBinaryString(i);
    if (s.charAt(s.length()-1) == '0'){
        s = s.substring(0,s.length() - 1);
        s = s+"1";
    }else if (s.charAt(s.length()-1) == '1') {
        s = s.substring(0, s.length() - 1);
        s = s + "0";
    }
    return Integer.parseInt(s, 2);
}
Run Code Online (Sandbox Code Playgroud)

但是我该如何重写invertLastBit()呢?

java int bit-manipulation bit

5
推荐指数
2
解决办法
253
查看次数

标签 统计

bit ×1

bit-manipulation ×1

int ×1

java ×1