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

你想要完成什么?

在这种简单的情况下,您可以在循环后检查一次。我不确定你的目标是什么。

于 2012-07-26T08:36:34.070 回答
0

可以试试这个;

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

您可以执行与c++ 参考中解释的相同的操作

于 2012-07-26T08:37:46.940 回答
0

用于掩蔽and

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