功能 | 示例 | 位运算 |
---|---|---|
去掉最后一位 | (101101->10110) | x>> 1 |
在最后加一个0 | (101101->1011010) | x<< 1 |
在最后加一个1 | (101101->1011011) | x<< 1+1 |
把最后一位变成1 | (101100->101101) | x| 1 |
把最后一位变成0 | (101101->101100) | x| 1-1 |
最后一位取反 | (101101->101100) | x^ 1 |
把右数第k位变成1 | (101001->101101,k=3) | x | (1<< (k-1)) |
把右数第k位变成0 | (101101->101001,k=3) | x & ~(1 << (k-1)) |
右数第k位取反 | (101001->101101,k=3) | x ^ (1<< (k-1)) |
取末k位 | (1101101->1101,k=5) | x &((1 << k)-1) |
取右数第k位 | (1101101->1,k=4) | x >>(k-1) & 1 |
把末k位变成1 | (101001->101111,k=4) | x | ((1<< k)-1) |
末k位取反 | (101001->100110,k=4) | x ^ ((1<< k)-1) |
把右边连续的1变成0 | (100101111->100100000) | x &(x+1) |
把右起第一个0变成1 | (100101111->100111111) | x | (x+1) |
把右边连续的0变成1 | (11011000->11011111) | x | (x-1) |
取右边连续的1 | (100101111->1111) | (x ^ (x+1)) >> 1 |
去掉右起第一个1的左边 | (100101000->1000) | x & (x ^ (x-1)) |
一些常见的二进制位的变换操作
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 位操作符 因为位操作符在数值都表示的最底层的操作,因此性能上比其他操作符要好,只做了解,性能好,但是会导致代码可读...
- 1.你永远不知道在别人嘴中的你会有多少版本,也不会知道别人为了维护自己而说过什么去诋毁你,更无法阻止那些不切实际的...