Bra*_*mir 2 algorithm math bit-manipulation
我试图找出一种方法来计算偶数在变成奇数之前可以被二除多少次。IE 100/2 = 50 => 50/2 = 25。因此 100 可以除以 2 两次。在它变得奇怪之前。我正在寻找所有不是二的幂的偶数。
这是两个问题。
转换数字二进制并计算第一个 1 之前的 0。每次你跳入 2,你就会失去一个零,而当 1 位于“第一个”位置时,你就会得到一个奇数。
再次查看二进制,2 的幂只有 1 位设置,奇数有 1 位设置。因此,任何设置了多个位且不是 1 位的内容都是您的答案。