位运算
独饮醉归人
咸鱼吐泡泡
展开
-
lowbit(x)的原理解析
lowbit(x)函数返回x二进制下最低位的1代表的十进制数,比如(二进制) x=1100 ,lowbit(x)代表 100原理解析lowbit(x)= x & (~x+1) 假设 x的二进制表示为 11100 ,那么 ~x 表示为 00011 ,~x+1=00100 , 最低位的1的 位数不变, 进行 & 运算 返回 100证明: 假设最低位的1在第 k 位,后面还有 m 个0(m>=0),即..100(m个0) 那么取反运算后,后m位 0 都会变成原创 2021-11-03 21:47:07 · 389 阅读 · 0 评论 -
移位运算符的小技巧
移位符号 * >>右移,补码移动,表示向右移动几位,正数高位补0,负数高位补1 * <<左移,补码移动,无正负 * >>>无符号右移,右移后高位补0,无正负(1).判断二进制中1的个数思路:1.利用进制转的规则写出来算法2.利用位运算,1,二进制只有一个1,不断移动二进制中一位置,然后做按位与,只有1&1=1,判断结果是否为0,即可...原创 2020-04-13 00:16:32 · 321 阅读 · 0 评论 -
位运算的小技巧
一:按位与&与运算&, *规则,false&false=false,false&true=fasle, true&fasle=false,true&true=true * 在c语言中,false是0,true是1,所以 * 1&1=1;1&0=0;0&1=0;0&0=0*可以用来判断奇偶性,计数二进制最后一...原创 2020-04-12 23:58:48 · 164 阅读 · 0 评论