use*_*515 2 c bit-manipulation
如何使用按位非反转 x 数字的特定位?我知道我们可以使用 XOR 和掩码来做到这一点,但问题需要使用 NOT。
我需要反转从给定位置开始的一组位。函数内的变量包括原始值、要开始的位置和宽度=我要反转的位数。
我使用移位位从给定位置开始,但如何确保使用 NOT Bitwise 函数仅反转 x 个位数?
异或的定义:a ^ b <--> (a & ~b) | (~a & b)
unsigned x = 0x0F;
unsigned mask = 0x44; // Selected bits to invert
unsigned selected_x_bits_inverted = (x & ~mask) | (~x & mask);
printf("%02X\n", selected_x_bits_inverted);
// 4B
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12405 次 |
| 最近记录: |