首页
社区
课程
招聘
[分享]将除法转换为乘法的MagicNumber
发表于: 2009-2-6 03:40 12850

[分享]将除法转换为乘法的MagicNumber

2009-2-6 03:40
12850
收藏
免费 7
支持
分享
最新回复 (7)
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
2
沙发沙发。有用有用。谢谢谢谢。
2009-2-6 07:36
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
3
天才在看的网页
路过~~
2009-2-6 08:05
0
雪    币: 1270
活跃值: (109)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
4
建议Intel内嵌微码优化。
2009-2-6 08:41
0
雪    币: 10
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
[QUOTE=Bughoho;573946]将除法转换为乘法的MagicNumber



http://www.thesolver.it/Manuali/Factotum/source/062.htm[/QUOTE]

惭愧,不知道MagicNumber有什么作用.
2009-2-6 13:38
0
雪    币: 1270
活跃值: (109)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
6
刚刚看到:《加密与解密》(第三版)P96,提到了这个所谓的MagicNumber:2E8BA2E9,
其实质书中的例子已经讲的很清楚了:用(A×2E8BA2E9)>>(32+1) 即:(A×2E8BA2E9)/2^32+1
即:A*0.09090909...  来近似代替A/11,因为A/11 = A * 1/11,而
1/11 约等于 0.09090909...
所以有表中的11的MagicNumber是2E8BA2E9的说法,一般这个数由编译器自动计算得到。
记住这些值,碰到这样的程序时会更容易理解些。个人看法,不足之处,请见谅。
2009-2-6 14:03
0
雪    币: 8209
活跃值: (4528)
能力值: ( LV15,RANK:2473 )
在线值:
发帖
回帖
粉丝
7
参考这个帖子:
http://bbs.pediy.com/showthread.php?t=68849
2009-2-6 14:06
0
雪    币: 1270
活跃值: (109)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
8
在这里想起了关于“π”的约率和密率,http://baike.baidu.com/view/3287.htm,寻找一个最相近的值来代替一个无理数。
2009-2-6 14:25
0
游客
登录 | 注册 方可回帖
返回
//