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

Побитовый операторы - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
kirya
-9 / 2 / 0
Регистрация: 01.06.2012
Сообщений: 87
24.06.2012, 15:08     Побитовый операторы #1
Друзья, есть задачка на побитовые операторы, кто знает, как делать и объясните на примере что такое РОТАЦИЯ БИТОВ???

Напишите программу ротации битов для заданных чисел, представленных в шестнадцатеричном виде, когда биты с самых крайних разрядов не теряются, а переносятся на противоположную сторону
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.06.2012, 15:08     Побитовый операторы
Посмотрите здесь:

Побитовый сдвиг C++
C++ Побитовый сдвиг массива
C++ побитовый анализ переменной
C++ Побитовый сдвиг
Побитовый сдвиг C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
castaway
Эксперт С++
4842 / 2981 / 367
Регистрация: 10.11.2010
Сообщений: 11,013
Записей в блоге: 10
Завершенные тесты: 1
24.06.2012, 15:16     Побитовый операторы #2
Цитата Сообщение от kirya Посмотреть сообщение
что такое РОТАЦИЯ БИТОВ???
Цитата Сообщение от kirya Посмотреть сообщение
когда биты с самых крайних разрядов не теряются, а переносятся на противоположную сторону
........
lamerr
9 / 9 / 1
Регистрация: 05.04.2012
Сообщений: 26
24.06.2012, 15:18     Побитовый операторы #3
Здесь в самом условии задачи это написано Ротация - это и есть такой сдвиг, когда биты с крайних разрядов переносятся на противоположную сторону. Если выполнить ротацию влево числа 11001 на 1 разряд, получится 10011, т.е. сначала все разряды сдвигаются влево, при этом старший сохраняется, а затем сохранённое значение записывается в младший бит.
Nick Alte
Эксперт С++
1590 / 982 / 115
Регистрация: 27.09.2009
Сообщений: 1,897
Завершенные тесты: 1
24.06.2012, 15:19     Побитовый операторы #4
Пример: было двоичное число 00001111, из 8 разрядов. Сдвигаем влево, остаётся (пусто) 0000111, крайняя единичка отпадёт. Ставим её на освободившееся место, получаем 10000111.

16-битным числам соответствует тип unsigned short.
C++
1
2
3
4
5
6
7
8
9
unsigned short RCL(unsigned short val)
{
    return (val & 0x8000) ? ((val << 1) | 1) : (val << 1);
}
 
unsigned short RCR(unsigned short val)
{
    return (val & 1) ? ((val >> 1) | 0x8000) : (val >> 1);
}
kirya
-9 / 2 / 0
Регистрация: 01.06.2012
Сообщений: 87
24.06.2012, 15:28  [ТС]     Побитовый операторы #5
А сможешь целиком программку написать)???
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16825 / 5246 / 321
Регистрация: 30.03.2009
Сообщений: 14,126
Записей в блоге: 26
24.06.2012, 17:09     Побитовый операторы #6
Цитата Сообщение от lamerr Посмотреть сообщение
Ротация - это и есть такой сдвиг, когда биты с крайних разрядов переносятся на противоположную сторону
Мне всегда казалось, что такая хрень называется "циклический сдвиг".

Поискал, что ткое ротация, нашёл описания систем команд процессоров. Например, http://zxpress.ru/book_articles.php?id=1052
Ротация означает по сути дела циклический сдвиг, но с привлечением дополнительного флага переноса

Что конкретно нужно автору - хз, пусть выясняет. Реализация циклического сдвига описана здесь: Циклический сдвиг битов Циклический сдвиг по своей сути представляет собой замену старшего набора битов и младшего по границе, определяемой величиной сдвига

Добавлено через 2 минуты
Цитата Сообщение от kirya Посмотреть сообщение
представленных в шестнадцатеричном виде
Цитата Сообщение от Nick Alte Посмотреть сообщение
16-битным числам соответствует тип unsigned short
В общем тут тоже хз, что имел автор. Ибо число оно и в африке число, а 16-ричный вид - это всего лишь запись числа. Может и вправду имелось в виду 16-рязрядное число, а может и хз что
Nick Alte
Эксперт С++
1590 / 982 / 115
Регистрация: 27.09.2009
Сообщений: 1,897
Завершенные тесты: 1
24.06.2012, 23:14     Побитовый операторы #7
Каков вопрос, таков и ответ... Однако же что-то многим топикстартерам надо лишь чтобы им написали сразу всё целиком, а на их долю пришлась бы только сумбурная формулировка задачи.
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
25.06.2012, 09:18     Побитовый операторы #8
Цитата Сообщение от lazybiz Посмотреть сообщение
когда биты с самых крайних разрядов не теряются, а переносятся на противоположную сторону
Это циклический сдвиг, а ротация бывает кадров, тогда одни люди уходят с ранее занимаемых должностей, а другие занимают их место.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.06.2012, 13:45     Побитовый операторы
Еще ссылки по теме:

С++.Операторы в С++: условные операторы, операторы break и continue C++
Побитовый сдвиг C++
Побитовый вывод переменной C++

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

Или воспользуйтесь поиском по форуму:
castaway
Эксперт С++
4842 / 2981 / 367
Регистрация: 10.11.2010
Сообщений: 11,013
Записей в блоге: 10
Завершенные тесты: 1
25.06.2012, 13:45     Побитовый операторы #9
Цитата Сообщение от taras atavin Посмотреть сообщение
Это циклический сдвиг, а ротация бывает кадров, тогда одни люди уходят с ранее занимаемых должностей, а другие занимают их место.
Не трудно догадаться что имел в виду ТС. Тем более это написал он сам.
Кстати ротация бывает не только кадровая...
Yandex
Объявления
25.06.2012, 13:45     Побитовый операторы
Ответ Создать тему
Опции темы

Текущее время: 04:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru