bobwuming

假设 j = i 那 j >> i = 0

j = i   j >> i = 0

右移位数相当于除2的位数方,二进制32个一组:(正数的无符号右移适用此公式,负数不适用)

j >> i  =  j >>> i  = j / (int) (Math.pow(2, i % 32));

左移位数相当于乘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 1
2    二进制:0 0 1 0
9 ^ 2  结果:1 0 1 1 

转换为十进制:8 + 2 + 1 = 11

规律:跳过为0的数,只关注为1的数 每位的十进制 = Math.pow(2, 位数(从左到右数) - 1);

分类:

技术点:

相关文章:

  • 2021-12-10
  • 2022-12-23
  • 2022-12-23
  • 2021-11-30
猜你喜欢
  • 2022-01-13
  • 2022-01-25
  • 2022-01-04
  • 2022-12-23
  • 2021-07-29
  • 2021-09-07
相关资源
相似解决方案