Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.05.2015, 23:34   #1
Dudki
 
Регистрация: 24.01.2015
Сообщений: 7
По умолчанию Странная функция типа bool

Здравствуйте!
Работаю с учебником по структурам Кубенского, наткнулся на пример в главе про множества, который никак не могу переварить.
Есть такой фрагмент:
Код:
bool Set::has(int n) const {
  if (n > maxElem || n < minElem)
    return false;    // элемент выходит за границы множества
  // "Адрес" элемента:
  int word = (n - minElem) >> 4;
  int bit = (n - minElem) & 15;
  return (elems[word] & (1 << bit)) != 0;
Друзья, как понять выражение return (elems[word] & (1 << bit)) != 0; ?
Как мне пока известно, логическая функция возвращает либо 1 либо 0.
Данная функция проверяет наличие элемента во множестве, и в конечном итоге, как я пока могу прочесть, возвращается !=0, т.е. в булевых понятиях = 1. Какой тогда смысл во всем этом коде, если надо просто вернуть 1 и какое это имеет отношение к проверке наличия элемента? Или я чего-то не так понимаю?
Или же тут возвращается значение выражение, получаемое через оператор != , примененный к двум операндам - (elems[word] & (1 << bit)) и 0, а дальше получаем 1 если значение левого операнда не равно 0 и 0 если оно равно нулю?
Dudki вне форума Ответить с цитированием
Старый 03.05.2015, 23:49   #2
uberchel
Участник клуба
 
Аватар для uberchel
 
Регистрация: 19.01.2009
Сообщений: 1,453
По умолчанию

Вы сами ответили на свой вопрос )
uberchel вне форума Ответить с цитированием
Старый 03.05.2015, 23:57   #3
Dudki
 
Регистрация: 24.01.2015
Сообщений: 7
По умолчанию

Спасибо
Dudki вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Функция без указанного типа cossack5 Общие вопросы C/C++ 3 16.01.2014 09:34
функция типа void Krivorukov Общие вопросы C/C++ 9 18.11.2012 16:58
функция типа randomize в pascale Музыкант Общие вопросы C/C++ 2 09.10.2012 13:28
функция malloc() для разного типа переменной. Serjuk Помощь студентам 46 05.01.2010 21:52