标签: algorithm math bit-manipulation
我试图找出一种方法来计算偶数在变为奇数之前可被除以2的次数。 I.E. 100/2 = 50 => 50/2 = 25.所以100可以除以2两次。在变得奇怪之前。我正在寻找所有非幂数的偶数。
答案 0 :(得分:3)
这是两个问题。
转换数字二进制数并计算前一个数字前的0。每次下潜2时你会松开一个零,当一个1处于“第一”位置时,你得到一个奇数。
再次,看二进制,2的幂只有一个位设置,奇数有1位设置。所以任何设置了多位而不是1位的是你的答案。