什么是“清除第六位”整数的最佳方法?“清除第6位”的最佳方法是什么?
而且,您的解决方案平台是独立的吗? (32或64位整数等)。如果不是,你可以提供一个独立于平台的解决方案吗?
更新:我们不知道当它被给定时该位是否被设置或取消设置......还有,任何语言都可以......我知道独立于平台的解决方案需要2个操作员。 ..也许有各种方法或更简单的解决方案。
更新:更清楚:清除整数的第6个最低有效位。
什么是“清除第六位”整数的最佳方法?“清除第6位”的最佳方法是什么?
而且,您的解决方案平台是独立的吗? (32或64位整数等)。如果不是,你可以提供一个独立于平台的解决方案吗?
更新:我们不知道当它被给定时该位是否被设置或取消设置......还有,任何语言都可以......我知道独立于平台的解决方案需要2个操作员。 ..也许有各种方法或更简单的解决方案。
更新:更清楚:清除整数的第6个最低有效位。
x&= ~(1 << 5)
如果你确定它已经设置,只需减去64
更新:加入测试
if((x % 128)/64 > 0)
x -= 64;
至于我可以看到,现在,这没有任何的假设平台或语言支持。
我认为不能肯定它已经设置好了。 –
或32,如果您认为低位是“第1”位而不是“0”位。;) –
Jian Lin提出了一个很好的观点,你必须检查第6位是否已经设置。你的第一个想法也是。 – jcolebrand
也许这在c?
value&~(1<<6)
语言? ..... –
实际上,任何语言......但如果C是一个很好的说明按位操作,或者其他语言,如果他们有非常优雅的解决方案? –
嗯......究竟是大端整数的第6位呢?和一个小端的?... –