在我的功能,我第一次使用MOD如下:在C中,如何计算无符号长模的模数?
void function(int, int, unsigned int);
电话:
function(100, 200, get_value() % 1024);
的get_value()
将返回一个unsigned int类型,从0x
0变化到0xffffffff
。在这种情况下get_value() % 1024
可能比1024
导致function()
运行次数过多大的非常大的数字,所以我改变了它如下:
unsigned int num = get_value() % 1024;
function(100, 200, num);
在这种情况下,num
是确定的。我用gcc
进行编译。
那么这两种方法之间有什么区别,以及C如何计算unsigned long
的模量?
'的get_value()%1024'永远不能返回的数字大于'1024'大。它将以'[0,1023]'为界。更一般地说,'a%b'将返回范围为[[0,b - 1]'的数字。 –
问题出在代码中,您没有向我们展示过。你能写一个小型自包含程序来展示问题吗?你怎么知道参数值是什么? –