| 功能 | 示例 | 位运算 |
|---|---|---|
| 去掉最后一位 | (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)) |
一些常见的二进制位的变换操作
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 位操作符 因为位操作符在数值都表示的最底层的操作,因此性能上比其他操作符要好,只做了解,性能好,但是会导致代码可读...
- 1.你永远不知道在别人嘴中的你会有多少版本,也不会知道别人为了维护自己而说过什么去诋毁你,更无法阻止那些不切实际的...