Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
amatorIP
3 / 3 / 0
Регистрация: 22.07.2010
Сообщений: 141
#1

Операции сдвига - C++

04.10.2011, 18:17. Просмотров 576. Ответов 2
Метки нет (Все метки)

Помогите понять операции сдвига.
Вот два примера левого и правого сдвига.

9 (base 10): 00000000000000000000000000001001 (base 2)
--------------------------------
9 << 2 (base 10): 00000000000000000000000000100100 (base 2) = 36 (base 10)


9 (base 10): 00000000000000000000000000001001 (base 2)
--------------------------------
9 >> 2 (base 10): 00000000000000000000000000000010 (base 2) = 2 (base 10)

Какова логика получения значение сдвига при этом не преобразовуя в двоичный код?
Какие действия производят что бы получить:
9 << 2 = 36.

Спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.10.2011, 18:17     Операции сдвига
Посмотрите здесь:

операции сдвига - C++
помогите со сдвигом требуется сделать в цикле сдвиг нуля в такой последовательности. подскажите как сделать? 11111110 11111101 ...

Операции сдвига - C++
Через операторы сдвига можно в одну переменную поместить несколько значений. int A = 0; int b = {44,45,46}; A = (int)(b|b&lt;&lt;4|b&lt;&lt;8); ...

Побитовые операции сдвига - C++
Как работают операции сдвига вправо? Я всегда считал что освобождающиеся левые биты заполняются нулями. Оказывается это не всегда так. Если...

Операции сдвига в языке C. - C++
Нужно сформировать шестнадцатеричное число с помощью операций сдвига. Помогите продолжить программу. #include &lt;stdio.h&gt; int main()...

Упаковка пакета с помощью операции сдвига - C++
здравствуйте подскажите пожалуйста, правильно ли написано по этой картинке unsigned_int16 a,b; packet = a &lt;&lt;8; packet = a&lt;&lt;5...

Операции сдвига, перегруженые функции. Объясните суть - C++
Люди, помогите плиз. Дали на летнюю практику задания, которые в семестре не делали впринципе(учили простой Си). Первое задание такое:...

операция сдвига - C++
Объясните пожалуйста как именно работает и для чего нужна операция сдвига влево, в выражении например: N = 10; r = 1 &lt;&lt; N; И если...

регистр сдвига???? - C++
На вход поступают числа: 10111 00101 11111 (к примеру) на регистр поступает старший разряд каждого миниблока(в каждом миниблоке 5...

Шифр сдвига (Цезаря) - C++
скажите как сделать шифр в кольце 26(для латиницы), т.е. чтобы последняя буква в первую переходила int main() { ...

Перегрузка оператора сдвига - C++
Мне нужно перегрузить операторы&gt;&gt;, &lt;&lt;как члены класса, написал так: istream&amp; Flower::operator&gt;&gt;(Flower&amp; obj) { this &gt;&gt;...

Ошиба циклического сдвига - C++
Вот задание. Дана действительная квадратная матрица порядка n. 1) осуществить циклический сдвиг элементов прямоугольной матрицы на N...

Операция побитового сдвига - C++
Задача состоит в том,что нужно введенное число (unsigned char) перевести в двоичную, а затем проверить биты полученного числа (тоесть, что...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
212months
5 / 5 / 1
Регистрация: 09.05.2011
Сообщений: 6
04.10.2011, 18:29     Операции сдвига #2
x << 1 умножает на 2 (если х - целое)
x >> 1 целочисленно делит на 2.
Соответственно, если сдвигать больше, чем на одну позицию, то результат будет сродни последовательному целочисленному умножению/делению на 2 столько раз, на сколько позиций осуществляется сдвиг.
amatorIP
3 / 3 / 0
Регистрация: 22.07.2010
Сообщений: 141
04.10.2011, 18:31  [ТС]     Операции сдвига #3
Спасибо! Теперь все стало на свои места)
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru