为什么这个属性适用?
说右边的第k位是数字'x'中的第一个设置位。 (x-1)将从右侧切换到第k位。
我可以通过编写数字的位序列来验证此属性,但我不明白为什么这个属性是真的?任何人都可以用一个简单的证据或直觉来帮助我,为什么这有效?
答案 0 :(得分:2)
如果你这样做(x-1),其中x是基数10整数,那么右边的所有零(如果有的话)将成为9。
9324930000000 - 1 = 9324929999999
答案 1 :(得分:1)
让我们做一个手减法
xxx100...00
- xxx000...01
_____________
xxx011...11
x
代表我们不关心的部分
从右边开始10 - 1 = 1
,从下一栏借用1
然后下一个是0 - 0
,减去借位,这也导致0 - 1 = 1
借用1.这个序列一直持续到减数中的位为1,现在我们有1 - 0 - borrow = 1 - 1 = 0
< / p>
结果,直到最右边设置位的所有位都将被反转