Binary 二进制被10整除

Binary 二进制被10整除,binary,division,Binary,Division,如何检查一个二进制数是否可以除以10个十进制数,而无需将其转换为其他系统。 例如,我们有一个数字: 1010 1011 0100 0001 0000 0100 我们如何检查这个数字是否可以被10整除 首先把数字分成奇数和偶数,我称之为偶数 与2的偶数幂对应的位: 1001001100101100000011101110 01 01 01 01 01 01 01 01 0 0 1 0 1 0 1 0偶数10 01 01 0 01 01 0 01 0 0 01 1奇数 现在,在每一个例子中,交替地

如何检查一个二进制数是否可以除以10个十进制数,而无需将其转换为其他系统。 例如,我们有一个数字:

1010 1011 0100 0001 0000 0100
我们如何检查这个数字是否可以被10整除

首先把数字分成奇数和偶数,我称之为偶数 与2的偶数幂对应的位:

1001001100101100000011101110 01 01 01 01 01 01 01 01 0 0 1 0 1 0 1 0偶数10 01 01 0 01 01 0 01 0 0 01 1奇数

现在,在每一个例子中,交替地加减数字,如中所示 以11开头的十进制数的可除性的标准测试 在右侧添加:

1001001100101100000101101110+0-1+0-1+0-0+1-0+0-0+1-1+0-1+0= -2+1-0+0-1+0-1+1-0+0-0+0-0+1-1+1=1

现在将奇数的和加倍,并将其与偶数的和相加 数字:

2*1+-2=0

如果结果可被5整除,如本例中所示,则数字本身为 可被5整除的

因为这个数字也可以被2整除,所以最右边的数字是 0,它可以被10整除

首先把数字分成奇数和偶数,我称之为偶数 与2的偶数幂对应的位:

1001001100101100000011101110 01 01 01 01 01 01 01 01 0 0 1 0 1 0 1 0偶数10 01 01 0 01 01 0 01 0 0 01 1奇数

现在,在每一个例子中,交替地加减数字,如中所示 以11开头的十进制数的可除性的标准测试 在右侧添加:

1001001100101100000101101110+0-1+0-1+0-0+1-0+0-0+1-1+0-1+0= -2+1-0+0-1+0-1+1-0+0-0+0-0+1-1+1=1

现在将奇数的和加倍,并将其与偶数的和相加 数字:

2*1+-2=0

如果结果可被5整除,如本例中所示,则数字本身为 可被5整除的

因为这个数字也可以被2整除,所以最右边的数字是 0,它可以被10整除


如果你在谈论计算方法,你可以做一个5整除性测试和一个2整除性测试。 下面的数字采用无符号32位算术,但可以轻松扩展为更大的数字

我将首先提供一些代码,然后是更为文本化的解释:

无符号整数div5exactunsigned整数n { //只要n实际除以5,则返回n/5 //因为'n*INV5*5'='n*1'模2^32 定义INV5 0xCCCD 返回n*INV5; } 无符号整数除法5无符号整数n { 无符号整数q=div5exactn;
如果q如果你在谈论计算方法,你可以做一个5整除性测试和一个2整除性测试。 下面的数字采用无符号32位算术,但可以轻松扩展为更大的数字

我将首先提供一些代码,然后是更为文本化的解释:

无符号整数div5exactunsigned整数n { //只要n实际除以5,则返回n/5 //因为'n*INV5*5'='n*1'模2^32 定义INV5 0xCCCD 返回n*INV5; } 无符号整数除法5无符号整数n { 无符号整数q=div5exactn; 如果q这里是python中使用位技术检查除数为10的代码

下面是python中使用位技术检查除数为10的代码


你是说10个十进制数还是10个二进制数?每个0的数字都可以被1010个十进制数整除。我忘了在帖子里提到它。编辑:post edited。@EricJ。我想说的是这个问题措辞含糊不清。@asawyer事实上,严格的数学定义x可以被y整除意味着存在一些整数m,比如ym=x,也就是说,它被除掉了,没有余数,所以它一点也不含糊。我能理解为什么它会让人困惑,因为我们总是对不可除的数字进行除法,也就是说,我们得到的结果是一个remiander/a decimal-如果你仔细定义可除这个词,这是没有意义的。你是指10个十进制数还是10个二进制数没有?每个0的数字都可以被1010小数整除。我忘了在帖子里提到它。编辑:post edited。@EricJ。我想说的是,这个问题措辞含糊不清。@asawyer实际上,严格的数学定义x可以被y整除意味着存在一个整数m,使得ym=x,也就是它被y整除还有余数-所以它一点也不含糊。我能理解为什么它会令人困惑,因为我们总是对不可除数进行除法,也就是说,我们得到的结果是一个remiander/一个小数-如果你仔细定义可除数这个词,这是没有意义的。我发现了这个;我认为有人找到了一个更简单的解决方法tion,这就是我为什么提出这个问题的原因。无论如何,谢谢;我发现了这个;我认为有人找到了一个更简单的解决方案,这就是我为什么提出这个问题的原因。无论如何,谢谢;
#taking input in string which is a binary number eg: 1010,1110
s = input()
#taking initial value of x as o
x = 0
for i in s:
    if i == '1':
        x = (x*2 + 1) % 10
    else:
        x = x*2 % 10
#if x is turn to be 0 then it is divisible by 10
if x:
print("Not divisible by 10")
else:
print("Divisible by 10")