CS中的任何二年级学生应该能够回答什么,但我似乎无法绕过它......
我有一组位,我需要用不同的集替换一些位.在一个简化的例子中:
10101010 - 原始位设置
00001111-显示替换位置的掩码
00001100 - 新的位值
10101100 - 结果位设置
另一个例子:
10101010 - 原始位设置
00110011 -mask
11111111 - 新的比特值
10111011 - 结果位设置
通过迭代比特来做到这一点是微不足道的.
是否可以使用布尔逻辑(AND,OR等)来做到这一点?
Phi*_*sse 10
result = (original & ~mask) | (newbits & mask)
Run Code Online (Sandbox Code Playgroud)
"&〜mask"部分确保在|之前将这些位清除为0 部分.
"&mask"部分确保仅使用newbits中的适当位.