位反转

来自GSXAB的知识库
位反转
术语名称 位反转
英语名称 bit toggle
别名 位翻转

位反转(bit toggle)指将数据的某些指定的取值反转的操作。通过与掩码进行按位异或完成。

定义

对二进制串 [math]\displaystyle{ b_1 b_2 \cdots b_n }[/math] ,若需要将其中下标为 [math]\displaystyle{ j_1 j_2 \cdots j_r }[/math] 的位中全部 1 变成 0 、 0 变成 1 ,保留其他的位,可以构造掩码 [math]\displaystyle{ m_1 m_2 \cdots m_n }[/math] ,其中 [math]\displaystyle{ m_i = \begin{cases} 1, i \in \{j_1,j_2,\cdots,j_r\} \\ 0, i\notin \{j_1,j_2,\cdots,j_r\} \end{cases} }[/math] ,令两二进制串进行按位异或,则结果即为所需二进制串,这一操作称为位反转(bit toggle)操作。


位运算
按位运算 按位运算 按位取反按位与按位或按位异或
特殊情况 掩码位设置位清除位反转
移位运算 算术移位 算术左移算术右移
逻辑移位 逻辑左移逻辑右移
循环移位 循环左移循环右移