回 帖 发 新 帖 刷新版面

主题:? 请教一个用移位作乘法的步骤分析。。。





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个回复)

沙发

这就是小学时学的竖式算乘法:)

板凳

比如 a*13
13的二进制是 1101
a*13 = a<<0 + a<<2 + a<<3

a*13 = a*2的0次方 + a*2的2次方 + a*2的3次方

3 楼

你好.我是全职网赚工作者.
如果你有时间有电脑.
想在网络上创业.请联系我..
项目绝对真实.详情QQ空间资料
加盟请联系 QQ908889846

我来回复

您尚未登录,请登录后再回复。点此登录或注册