偶数能被二除多少次才变成奇数?

Bra*_*mir 2 algorithm math bit-manipulation

我试图找出一种方法来计算偶数在变成奇数之前可以被二除多少次。IE 100/2 = 50 => 50/2 = 25。因此 100 可以除以 2 两次。在它变得奇怪之前。我正在寻找所有不是二的幂的偶数。

Kar*_*ger 5

这是两个问题。

  1. 我试图找出一种方法来计算偶数在变成奇数之前可以被二除多少次。IE 100/2 = 50 => 50/2 = 25。因此 100 可以除以 2 两次。在它变得奇怪之前。

转换数字二进制并计算第一个 1 之前的 0。每次你跳入 2,你就会失去一个零,而当 1 位于“第一个”位置时,你就会得到一个奇数。

  1. 我正在寻找所有不是二的幂的偶数。

再次查看二进制,2 的幂只有 1 位设置,奇数有 1 位设置。因此,任何设置了多个位且不是 1 位的内容都是您的答案。