我想知道二进制系统中是否有除以3的可除法则。
例如:以十进制表示,如果数字总和除以3,则数字除以3。例如,示例:除以3,则15 -> 1+5 = 6 -> 615除以3。
15 -> 1+5 = 6 -> 6
需要了解的重要一点是,我不是在寻找会这样做的代码。.bool flag =(i%3 == 0); 不是我要找的答案。我寻找的东西就像十进制定律一样容易被人做。
请访问此网站:如何判断二进制数是否可被三除
从右开始 基本上计算非零奇数位和非零偶数位 的数量 。如果它们的差可被3整除,则数字可被3整除。
例如:
15 = 1111具有2个奇数位和2个偶数非零位。差为0。因此可15被整除3。
15 = 1111
15
3
185 = 10111001它具有2个奇数非零位和3个偶数非零位。差异为1。因此185不能被整除3。
185 = 10111001
185
说明
考虑这些2^n值。我们知道这2^0 = 1是全等的1 mod 3。因此2^1 = 2是2*1 = 2模3。继续模式,我们注意到对于2^nn奇数,2^n是全等的1 mod 3,对于n甚至是全等2 mod 3的-1 mod 3。因此10111001,全等1*1 + 0*-1 + 1*1 + 1*-1 + 1*1 + 0*-1 + 0*1 + 1*-1mod 3是全等的1 mod 3。因此185不能被3整除。
2^n
2^0 = 1
1 mod 3
2^1 = 2
2*1 = 2
2 mod 3
-1 mod 3
10111001
1*1 + 0*-1 + 1*1 + 1*-1 + 1*1 + 0*-1 + 0*1 + 1*-1