0

私は現在、値が特定の値(この場合は0x1000(4096))を超えないようにするソリューションを見つけようとしています。これは簡単な解決策ですが、ここで重要なのは速度です。

int someVal = rand();
for(int i = 0; i < 10000; i++)
{
    if(someVal > 0x1000)
        someVal = 0x1000;
    cout << someVal;
    someVal = rand();
}

もちろん他に方法がない限り、それは遅すぎます。助けてくれてありがとう、Hetelek。

4

5 に答える 5

5

何を達成しようとしているのかわからない。これで問題は解決しますか?

someVal = rand() % 0x1001;
于 2012-07-26T08:36:41.600 に答える
1

何を達成したいですか?

この単純なケースでは、ループの後で1回チェックできます。あなたの目標が何であるかわかりません。

于 2012-07-26T08:36:34.070 に答える
0

andマスキングに使用:

someVal = rand() & 0xfff;
于 2012-07-26T08:39:36.537 に答える
0

これを試すことができます。

floatValue = floor(floatValue * 0x1000 + 0.5)/0x1000; 
于 2012-07-26T08:35:06.877 に答える
0

C++リファレンスで説明されているのと同じことができます

于 2012-07-26T08:37:46.940 に答える