2023.3.24
整理一点位运算相关:
对于数字 k:
1.第 i 位是几:k << i & 1
2.lowbit 返回最低位的 1 的位置:
实现 1 :k & -k //一个数的负数是其补码,即原数取反加一,本句等价于 k = (~k + 1)
实现 2:k & (k ^ (k - 1))
总结:二进制比较抽象,之前一直特别讨厌,现在发现见多了就好了。理解不了写一写就通了。总之二进制真的非常强大,是很多操作的基础。太强大啦!
整理一点位运算相关:
对于数字 k:
1.第 i 位是几:k << i & 1
2.lowbit 返回最低位的 1 的位置:
实现 1 :k & -k //一个数的负数是其补码,即原数取反加一,本句等价于 k = (~k + 1)
实现 2:k & (k ^ (k - 1))
总结:二进制比较抽象,之前一直特别讨厌,现在发现见多了就好了。理解不了写一写就通了。总之二进制真的非常强大,是很多操作的基础。太强大啦!