Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Обьясните плииз, что за строчка на С++ написана???: ((a>>15)+1)&~1.

5.3K
27 марта 2007 года
!Волк
95 / / 19.07.2006
Вот фрагмент кода кода на С++:
 
Код:
inline int test(long int a)
{return ((a>>15)+1)&~1;}

Мне не понятно это что такое:
 
Код:
((a>>15)+1)&~1;

В комменте написано, что функция "test" проверяет параметр "a" на допустимый диапазон.
1.9K
27 марта 2007 года
InterWen
331 / / 16.09.2006
Пересмотри о "Битовых операциях".
Вот из маньки по ПХП скажем - http://www.pomorsu.ru/doc/php_manual/piramidin/operators.bitwise.html
(что применимо и к С++)
5.3K
27 марта 2007 года
!Волк
95 / / 19.07.2006
Тоесть, правильно ли я понимаю, что если было у мя число a например:
1010 1100 1111 1011b, то после операции ((a>>15)+1)&~1 оно преобразовалось так:
1 (>>15): 0000 0000 0000 0001 //сдвигаем вправо на 15
2 (+1): 0000 0000 0000 0010 // no comment
3 (~1): 1111 1111 1111 1110 // устанавливаем противоположные биты
4 (&): 0000 0000 0000 0010 // устанавливаем одинаковые биты

Кстате, long int в 32 bit - ной системе тоже самое, что и int(4 байта)?
502
27 марта 2007 года
Jail
550 / / 30.01.2007
Цитата:
3 (~1): 1111 1111 1111 1110 // устанавливаем противоположные биты


Унарная операция, инверсия числа.

Цитата:
4 (&): 0000 0000 0000 0010 // устанавливаем одинаковые биты


Бинарная операция логическое "И". Результат является истинным, если истинны оба аргумента(так же называется наложением маски).
Самое главное помнить(иль подсмотреть) старшинство операций!!!

Цитата:
Кстате, long int в 32 bit - ной системе тоже самое, что и int(4 байта)?


Я думаю, что на разных машинах по разному.

361
27 марта 2007 года
Odissey_
661 / / 19.09.2006
& - не логическое 'И', а битовое. Логическое - &&. Узнать размер типа данных (в тривиальных случаях) можно sizeof(тип). Проверте.:-)
5.3K
27 марта 2007 года
!Волк
95 / / 19.07.2006
Если быть точным, то оно (&) называется логическим поразрядным.)
За sizeof спасибо, напомнил.)) Раньше пользовался, но потом забыл про него после долгого перерыва.)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог