2017-11-24 14 views
0

私は、ARMのナンバーゲームを推測してそれについて学んでいます。 しかし、私は乱数生成に固執しています... 私はrand()を呼び出しますが、モジュロ100を使って0〜100の範囲の数値を生成する方法はわかりません。 私はここでモジュロARMを使用した乱数

は、擬似乱数生成の開始です...モジュロがARMであると思うと「とR0、R0、#100」非常にランダムではないしません。

mov r0, #0 
bl time 
bl srand 
bl rand 

答えて

1

あなたが興味を持っている残りの部分が2の累乗で除算されている場合にのみANDを実行します。あなたが行うことができることは、100ではなくそのような値の1つを使用することです。

代りの定理:

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

これはgccも同様です(実際にはに100で割ってreciprocal multiplicationとすることは避けますが)。あなたのARMが整数除算命令をサポートしている場合は、luckyです)。

+0

ありがとうございました!私は残りの定理を使用しようとします。 – Neolex

関連する問題