设置unsigned int的第n位

时间:2015-02-06 07:22:49

标签: bitwise-operators

给定一个unsigned int x,我想将第n位设置为y,y可以是0或1.是否可以使用按位运算符创建表达式来执行此操作,同时避免使用任何条件语句?感谢。

2 个答案:

答案 0 :(得分:4)

x = (x & (~(1 << n))) | (y << n)

非常简单。 (首先,清除n位,如果n1,则将y位设为1。)

答案 1 :(得分:1)

x ^= (-y ^ x) & (1 << n);
相关问题