不让价值超过另一个的最快方法 - C ++

时间:2012-07-26 08:33:41

标签: c++ numbers

我目前正试图找到一个不会让值超过某个值的解决方案,在本例中为0x1000(4096)。这是一个简单的解决方案,但关键在于速度。

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

这太慢了,除非当然没有别的方法可以做到。感谢任何帮助,Hetelek。

5 个答案:

答案 0 :(得分:5)

不确定您要完成的任务。这会解决您的问题吗?

someVal = rand() % 0x1001;

答案 1 :(得分:1)

你想要完成什么?

在这个简单的例子中,您可以在循环后检查一次。我不确定你的目标是什么。

答案 2 :(得分:0)

可以试试这个;

floatValue = floor(floatValue * 0x1000 + 0.5)/0x1000; 

答案 3 :(得分:0)

您可以执行与c++ reference

中解释相同的操作

答案 4 :(得分:0)

使用and进行屏蔽:

someVal = rand() & 0xfff;