什么是“清除整数的第6位”的最佳方法?

时间:2010-03-26 23:58:46

标签: bit-manipulation

“清除整数的第6位”的最佳方法是什么?

并且,您的解决方案平台是独立的吗? (32或64位整数等)。如果没有,你能提供一个独立于平台的解决方案吗?

更新:我们不知道该位是否已设置或未设置...也是,任何语言都可以...我知道一个独立于平台的解决方案需要2个操作员......可能有各种方法或更简单的解决方案。

更新:更清楚:清除整数的第6个最低位。

4 个答案:

答案 0 :(得分:10)

x & (~(1 << 6))

答案 1 :(得分:5)

x&= ~(1 << 5)

答案 2 :(得分:0)

也许这在c?

value&~(1<<6)

答案 3 :(得分:-2)

如果你确定它已经设定,只需减去64。

更新:添加测试

if((x % 128) / 64 > 0)
  x -= 64;

据我现在所知,这并不是对平台或语言支持做出任何假设。