数字的补数

数字的补数

对整数的二进制位取反操作,再转成十进制得到该整数的补数。
如 4(100) 取反后得到补数3(011)。

对于整数n = 4。

  1. 获取n的二进制位中每一位都为1的数c

    int len = Integer.toBinaryString(n).length(); // 整数n的二进制长度,如4(100)的二进制长度为3。
    int v = 1< int c = v - 1; c = 7(111)。此时得到n的二进制中第一位都为1的数为c

  2. 将 c 与 n进行异或(^)运算。

    int m = c ^ n; 3(11)

leetcode476. 数字的补数

你可能感兴趣的:(leetcode做题笔记,位运算,异或运算,二进制,算法,java,数字的补数)