主题:? 请教一个用移位作乘法的步骤分析。。。
dd8924
[专家分:0] 发布于 2010-08-09 08:52:00
example: a * b // a. b 均为正数
int i, result = 0;
for (i = 0; i < 8; i++) // 只算256以内的数
if (b & (1u << i) != 0)
result += a << i;
这是一个没有看太明白的代码。。。希望有朋友帮解释下,或者还有自己的思路的欢迎分享,谢谢。
回复列表 (共3个回复)
沙发
cgl_lgs [专家分:21040] 发布于 2010-08-09 16:34:00
这就是小学时学的竖式算乘法:)
板凳
bruceteen [专家分:42660] 发布于 2010-08-09 19:35:00
比如 a*13
13的二进制是 1101
a*13 = a<<0 + a<<2 + a<<3
a*13 = a*2的0次方 + a*2的2次方 + a*2的3次方
3 楼
moke9 [专家分:30] 发布于 2010-09-02 07:24:00
你好.我是全职网赚工作者.
如果你有时间有电脑.
想在网络上创业.请联系我..
项目绝对真实.详情QQ空间资料
加盟请联系 QQ908889846
我来回复