(资料图)
1、假设 j = i 那 j >> i = 0j = i j >> i = 0右移位数相当于除2的位数方,二进制32个一组:(正数的无符号右移适用此公式,负数不适用)j >> i = j >>> i = j / (int) (Math.pow(2, i % 32));左移位数相当于乘2的位数方。
2、二进制32个一组:j << i = j * (int) (Math.pow(2, i % 32));异或符号运算,从二进制算法后转为十进制,公式:^ 符号为异或 0 ^ 0 = 0, 1 ^ 0 = 1, 0 ^ 1 = 1, 1 ^ 1 = 0 举例:9 二进制:1 0 0 12 二进制:0 0 1 09 ^ 2 结果:1 0 1 1 转换为十进制:8 + 2 + 1 = 11规律:跳过为0的数。
3、只关注为1的数 每位的十进制 = Math.pow(2, 位数(从左到右数) - 1);。
本文分享完毕,希望对大家有所帮助。