首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >右移除法的二进制数

右移除法的二进制数
EN

Stack Overflow用户
提问于 2014-03-12 10:42:27
回答 2查看 475关注 0票数 3

我了解到,如果您想将任何二进制数与任何二进制数相乘,请执行以下操作:

  1. 您可以分离出一个只包含一个1的二进制数中的乘法器。

00000101 = 00000100,00000001。

  1. 然后你做左移,这些新的数字
  2. 然后简单地添加结果。

那么任何数字的除法呢?

我听说你做正确的轮班,但这只算除法2。但我希望任何数字除以。我不是在说浮动数字。但是我怎么能用二进制除以25 /5呢?

请给我举个例子,非常感谢!

我试着在右移位后做一个减法(就像乘法一样),但是它不起作用:(

任意数字乘法的示例:

00001111 * 00000101是指:

00001111 * 00000100 + 00001111 * 00000001 = 00111100 + 00001111 = 01001011 (结果)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-12 11:03:37

对组织不起作用。

它适用于乘法的原因是因为乘法是分布于加法的。

代码语言:javascript
复制
17 * 5
17 * (4 + 1)
(17 * 4) + (17 * 1)

分割是不分配的

代码语言:javascript
复制
17 / 5
17 / (4 + 1)
(17 / 4) + (17 / 1) <== WRONG!!
票数 2
EN

Stack Overflow用户

发布于 2014-03-12 10:59:28

它不是这样工作的,只适用于2的幂。但是,有一些方法可以除以一个整数,而不是2的幂。见黑客的喜悦-常量的整数除法

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22348950

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档