问:提供二进制掩码和按位操作来完成以下任务:
到目前为止,我知道这是一个OR
操作,因为1是打开的,但我不知道如何提供一个掩码。我是否必须将7,3,1
转换为二进制,然后提供掩码?
发布于 2019-02-08 06:25:14
有关如何设置或切换位的详细信息可以在以下问题中找到:How do you set, clear, and toggle a single bit?。您可以使用位移位来设置/清除/切换单个位。
x |= (1UL << n); // Set bit n
也可以使用掩码,在其中定义所需的位元。在这里,您首先需要创建一个掩码,在该掩码中设置所需的所有位:
unsigned int myBinMask = 0b00100001; // Use bit 0 and 5
unsigned int myHexMask = 0x1C // Use bit 2, 3 and 4
unsigned int myShiftMask = (1UL << 1) | (1UL << 7); // Use bit 1 and 7
然后像这样使用它:
x ^= myBinMask; // Toggel bit 0 and 5
https://stackoverflow.com/questions/54545631
复制