我目前正试图找到一个不会让值超过某个值的解决方案,在本例中为0x1000(4096)。这是一个简单的解决方案,但关键在于速度。
int someVal = rand();
for(int i = 0; i < 10000; i++)
{
if(someVal > 0x1000)
someVal = 0x1000;
cout << someVal;
someVal = rand();
}
这太慢了,除非当然没有别的方法可以做到。感谢任何帮助,Hetelek。
答案 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;