起因是在读 Golang Malloc 相关代码时候,看到了 sys.TrailingZeros64 标准库函数,这个函数的作用是计算传入的 64 位二进制数(uint64)末尾有多少个 0。
计算二进制末尾有多少个 0,似乎很简单没啥好多讲的,直觉第一反应是类似这么实现:
就是不断循环看数的最低位,如果是 0 则计数并将数右移,如果是 1 则退出循环,返回计数。道理和循环不断模 2 取
了解更多