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