Код:
#define RAND_MAX 32767
static unsigned long int next = 1;
int rand(void)
{
next = next * 1103515245 + 12345;
return (unsigned int)(next/65536) % (RAND_MAX + 1);
}
void srand(unsigned int seed)
{
next = seed;
}
Это пример функции rand() для языка Си. При выводе числа он отбрасывает 16 младших и 1 старший разряд. Как отбрасываются младшие разряды я понимаю, а вот каким образом
Код:
% (RAND_MAX + 1)
отбрасывает 1 старший разряд?