2012-02-17 38 views
0

我試圖用C++生成一些8位隨機數,並且不想使用除法(如rand()%8或任何縮放方法)。是否有任何有效的隨機BYTES生成器(不使用分區)?

一個算法我在網上找到的Park-Miller-Carta Pseudo-Random Number Generator

這是一個32位的隨機數發生器,沒有分歧。隨着這些隨機數,我試圖提取它們的低8位或高8位,以便我可以得到一些隨機字節,但這似乎不起作用,因爲這些位不是那麼隨機的。

是否有任何技巧可以解決這個問題,或者是否有任何其他算法可以做到這一點?

+0

你想避免分割/模數的任何特定原因? – 2012-02-17 21:34:23

+0

你只是想避免使用「%8」?如果是這樣,編譯器將不會使用分頻。編譯器對2的權力是聰明的,並將使用「&7」來代替。 – BitBank 2012-02-17 21:37:28

+0

因爲我在做一些系統級的實驗。分部太慢了。 – Arthur 2012-02-17 21:39:01

回答

0

如何異或四字節的32位隨機整數?

+0

感謝您的回答。你的意思是使用高8位來異或低8位? – Arthur 2012-02-17 21:40:57

+0

我想我會繼續低8位。謝謝你們。 – Arthur 2012-02-17 21:55:18

相關問題