2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Отбрасывание старшего разряда
Сообщение23.12.2017, 16:46 


21/12/17
5
Код:
#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 старший разряд?

 Профиль  
                  
 
 Re: Отбрасывание старшего разряда
Сообщение23.12.2017, 17:32 
Заслуженный участник


09/05/12
25179
А Вам значение RAND_MAX + 1 ничего не напоминает?

 Профиль  
                  
 
 Re: Отбрасывание старшего разряда
Сообщение23.12.2017, 17:41 


21/12/17
5
Pphantom
нет

 Профиль  
                  
 
 Re: Отбрасывание старшего разряда
Сообщение23.12.2017, 17:44 
Заслуженный участник


09/05/12
25179
ACTIONFENIX в сообщении #1277998 писал(а):
нет
Прискорбно. А что могло бы появиться в такого рода коде?

 Профиль  
                  
 
 Re: Отбрасывание старшего разряда
Сообщение23.12.2017, 17:49 


08/12/17
259
У вас происходит взятие остатка при деление на степень двойки.

 Профиль  
                  
 
 Re: Отбрасывание старшего разряда
Сообщение23.12.2017, 17:59 


21/12/17
5
Pphantom
&32767. Лично я бы так отбрасывал старший разряд

-- 23.12.2017, 18:05 --

Pphantom
у
Код:
RAND_MAX + 1
только старший разряд равен единице, но конкретно в этом случае это ни про что мне не говорит, если вы об этом

 Профиль  
                  
 
 Re: Отбрасывание старшего разряда
Сообщение23.12.2017, 18:26 
Заслуженный участник


09/05/12
25179
ACTIONFENIX, все проще, Вам уже сообщили правильный ответ.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: HungryLion


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group