一个乘法算法求教

过去的我 2009-07-20 06:48:00
x * y
例如
x = 11 y = 13
11 * 13

11 13
5 26
2 52 ( out)
1 104

11 * 13 =13+26+104 =143

x不断除2,直到1,
y不断乘2,

x为偶数是不取,其他的y 一起加起来,得到乘法的结果,

是否是这样 ?
...全文
101 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lk198186 2009-07-21
  • 打赏
  • 举报
回复
学习ing
drysea 2009-07-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hikaliv 的回复:]
C/C++ code

__int64 LB32Multi32 ( unsigned int a, unsigned int b )
{
__int64 i64 = 0, it = (__int64)a;

while ( b > 0 )
{
if ( b & 1 )
{
i64 += it;
}

it <<= 1;

b >>= 1;
}

return i64;
}
[/Quote]

写得好棒呀!
drysea 2009-07-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hikaliv 的回复:]
C/C++ code

__int64 LB32Multi32 ( unsigned int a, unsigned int b )
{
__int64 i64 = 0, it = (__int64)a;

while ( b > 0 )
{
if ( b & 1 )
{
i64 += it;
}

it <<= 1;

b >>= 1;
}

return i64;
}
[/Quote]

同意……
光宇广贞 2009-07-20
  • 打赏
  • 举报
回复
……神了,为什么我用别人的号上的,回话的还是我……
过去的我 2009-07-20
  • 打赏
  • 举报
回复
嗯嗯..求原理..

另:
哪位能否写出递归算法
光宇广贞 2009-07-20
  • 打赏
  • 举报
回复

__int64 LB32Multi32 ( unsigned int a, unsigned int b )
{
__int64 i64 = 0, it = (__int64)a;

while ( b > 0 )
{
if ( b & 1 )
{
i64 += it;
}

it <<= 1;

b >>= 1;
}

return i64;
}

33,006

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧