关于逻辑运算符的运用,主要是抓住二进制数的结构特征来解决问题。
1、 求一个数转化为二进制后其中1的个数:
2、 一个整数X,求其n倍:
2倍 X = X<<1;
3倍 X = X<<1 + X;
4倍 X = X<<2;
n倍 ......
3、 用一个表达式,判断整数X是否是2^N次方(2,4,8,16,…),不可用循环。
2、4、8、16转化成二进制是10、100、1000、10000,如果X – 1 与X相与,记过是0.
所以答案是:!(X & (X-1))
关于逻辑运算符的运用,主要是抓住二进制数的结构特征来解决问题。
1、 求一个数转化为二进制后其中1的个数:
2、 一个整数X,求其n倍:
2倍 X = X<<1;
3倍 X = X<<1 + X;
4倍 X = X<<2;
n倍 ......
3、 用一个表达式,判断整数X是否是2^N次方(2,4,8,16,…),不可用循环。
2、4、8、16转化成二进制是10、100、1000、10000,如果X – 1 与X相与,记过是0.
所以答案是:!(X & (X-1))