我了解到,如果您想将任何二进制数乘以您执行的任何二进制数:
00000101 = 00000100,00000001。
然后你做那些新数字
然后您可以简单地添加结果。
那么任何数字的划分呢?
我听说你做了正确的转变,但这只取得了除以2的分数。但是我想要任何数字除以。我不是在谈论浮点数。但是我如何将25/5分成二进制?
请告诉我一个例子,非常感谢!
我试图在右移一次减法之后(所以像乘法一样),但它不会起作用:(
任何数字的乘法示例:
00001111 * 00000101表示:
00001111 * 00000100 + 00001111 * 00000001 = 00111100 + 00001111 = 01001011(结果)
答案 0 :(得分:2)
它不适合分裂。
它适用于乘法的原因是因为multiplication is distributive over addition
17 * 5
17 * (4 + 1)
(17 * 4) + (17 * 1)
分裂不是分配
17 / 5
17 / (4 + 1)
(17 / 4) + (17 / 1) <== WRONG!!
答案 1 :(得分:0)
它不起作用,仅适用于2的幂。但是,有一些方法可以用除2的幂之外的整数除法。见Hacker's delight - Integer division by constants