我想知道在二进制系统中有没有除以3的可除规则。
例如:在十进制中,如果数字和除以3,则数字除以3。对于exmaple:15 -> 1+5 = 6 -> 6除以3,所以15除以3。
重要的是要明白,我没有寻找一个代码,将这样做。bool flag=(i%3==0);不是我要找的答案。我在寻找一些对人类来说很容易做的事情,就像十进制法则一样。

最佳答案

请访问以下网站:How to Tell if a Binary Number is Divisible by Three
基本上是从右边数非零奇数位和非零偶数位。如果它们的差可以被3整除,那么这个数可以被3整除。
例如:
15 = 1111有2个奇数和2个偶数非零位。差别是0。因此15可以被3整除。
185 = 10111001有2个奇数非零位和3个偶数非零位。差别是1。因此185不能被3整除。
解释
考虑2^n值。我们知道2^0 = 1是一致的。因此1 mod 3是congurent2^1 = 2mod 3。继续这个模式,我们注意到对于n是奇数的2*1 = 22^n是一致的2^n,对于偶数的1 mod 3,它是一致的2 mod 3。因此-1 mod 3是一致的10111001mod 3,它是一致的1*1 + 0*-1 + 1*1 + 1*-1 + 1*1 + 0*-1 + 0*1 + 1*-1。因此185不能被3整除。

09-16 12:03