模数ARM的随机数

时间:2017-11-24 19:20:49

标签: arm modulo

我正在猜测ARM中的数字游戏以了解更多信息。 但我被困在随机数代...... 我调用rand()但我不知道怎么做modulo 100来生成0-100范围内的数字。 我不认为ARM中存在模数,而“和r0,r0,#100”不是很随机......

以下是伪随机数生成的开始:

mov r0, #0
bl time
bl srand
bl rand

1 个答案:

答案 0 :(得分:1)

只有当你感兴趣的余数来自功能为2的除法时,AND才有效。你可以做的一件事就是使用一个这样的值而不是100。

另一种选择就是使用余数定理:

a % 100 = a - (100 * int(a/100))

这也是gcc所做的事情(尽管它实际上避免了用名称reciprocal multiplication除以100;如果你的ARM支持整数除法指令,那么你就是{ {3}})。