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, Супермодераторы



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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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