th比特为零?

这个问题在这里已经有了答案:

  • 你如何设置,清除和切换一个位? 26个答案

  • 您只需用逻辑AND操作替换逻辑OR 。 你可以使用&运算符:

    pt = pt & ~(1 << i);
    

    你必须反转你的掩码,因为逻辑AND1将保持该位,而0将清除它...所以你需要在你想清除的位置指定一个0 。 具体来说,做1 << i会给你一个000...010..000的掩码,其中1是在你想要的位的位置, 000...010..000给出111...101...111 。 逻辑AND与这将清除你想要的位。


    你可以坚持这一点:

    // Set bit at position `bitpos` in `pt` to `bitval`
    unsigned char bitpos = 1;
    unsigned char pt = 0b01100001;
    bool bitval = 1;
    
    // Clear the bit
    pt &= ~(1u << bitpos);
    // Set the bit
    pt |= (bitval << bitpos);
    
    链接地址: http://www.djcxy.com/p/28793.html

    上一篇: th bit to zero?

    下一篇: Making a particular bit "0" in C++