摘要: 两个与位运算有关的小问题在读《编程之美》一书时,书中提到两个小问题:1.如何求算N!的二进制表示最低位1的位置。2.如何用最简便最快的方法判断一个正整数是否是2的方幂。对于第一个问题:对于任何一个整数n,当表示成二进制时,若最低位为1,则该数肯定是奇数,否则为偶数。若是奇数,则n肯定不含质因子2.例如9的二进制形式是1001,最后一位位1,则肯定不含因子2,而12的二进制形式是1100,则肯定含因子2.但是将1100右移2位就变成0011,即将12除以2^2,此时0011为奇数。从这里可以发现一个规律,要求一个数的二进制表示形式最低位1的位置,相当于求算n有多少个因子2。因为假如一个整数表示. 阅读全文
posted @ 2011-10-20 23:27 Matrix海子 阅读(1414) 评论(0) 推荐(0) 编辑