我想在 2 个 unsigned char_type 变量之间交换一段位:a 和 b。如果段不是连续的,如何用 C 语言解决它?例如 a 为011* 001 *10,输入段长度:5,起始位置 pa=5,段从 bit7~bit5 到 bit1~bit0 ,即011 10;b 为10* 011 *001,位置 pb=6,段来自 bit6~bit7 和 bit2~bit0,即10 001。2 段具有相同的长度。预期结果应该是这样的:a1= 11000100, b1= 11011001
我尝试使用 2 个临时变量 x 和 y 将交换位存储在 b 和 a 中,然后使用 ^ 完成交换。方法太复杂了。有什么棘手的想法吗?