我在寫我自己的方法隨機數生成用C隨機數如下:用C
int randomNumber(){
int catch = *pCOUNTER;
int temp = catch;
temp /= 10;
temp *= 10;
return (catch - temp);
}
pCounter
基本上是一個指針,在我使用的設備寄存器。該註冊號碼一直在增加,所以我的想法是隻取第一位數字。
在某些時候,返回的數量變得大於9,我不知道問題出在我的代碼或設備本身。該器件是Altera DE1板。
任何人都可以請幫忙嗎?
謝謝!
我希望這是一個家庭作業。 – 2011-04-07 23:29:43
你需要小心你的整數符號。如果'* pCOUNTER'是否定的,那麼到目前爲止您的方法和所有其他建議都會產生錯誤答案。如果將一個負整數轉換爲無符號類型,則它看起來很大。 – rlibby 2011-04-07 23:38:26
請注意,如果'* pCOUNTER'是無符號的,則當'* pCOUNTER> = 2^32'時可以返回負值。 – user470379 2011-04-07 23:41:34