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

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

Войти
Регистрация
Восстановить пароль
 
h_wolf
9 / 9 / 1
Регистрация: 24.01.2013
Сообщений: 212
#1

Функция циклического сдвига побитово вправо - C++

06.08.2013, 10:38. Просмотров 744. Ответов 4
Метки нет (Все метки)

Форумчане, приветствую!
Подскажите почему не работает сдвиг вправо?
Программа компилируется, но сдвига не происходит. Сверился с ответами в учебнике вроде все так.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
unsigned char rrotate(unsigned char val, int n)
{
    unsigned int t;
    t=val;
 
    t=t<<8;
 
    for(int i=0; i<n; i++)
    {
        t>>1;
        if(t&128) t=t|32768;
    }
    t=t>>8;
    return t;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.08.2013, 10:38
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Функция циклического сдвига побитово вправо (C++):

Вывести результат последовательного применения циклического сдвига вправо заданной последовательности k раз - C++
Циклическим сдвигом вправо последовательности называется последовательность, получаемая из исходной перемещением последнего элемента в...

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

Как закодировать методом циклического сдвига? - C++
Здравствуйте! Вопрос такой, что представляет из себя кодировка методом циклического сдвига на 2 вправо чётных битов относительно нечётных...

Программа циклического сдвига элементов массива - C++
Помогите!Срочно! Составить программу циклического сдвига элементов массива А(10) на 5 позиций влево.Заранее спасибо)))

Написать программы шифрования и расшифровки файла методом циклического сдвига - C++
Написать программы шифрования и расшифровки файла методом циклического сдвига. Т.е. каждый символ исходного файла (исходный код - K1)...

Реализовать функции шифровки и дешифровки методом циклического сдвига битов - C++
Даны текстовые файлы. Реализовать функции шифровки и дешифровки методом циклического сдвига битов на 1 бит вправо в левом полубайте и на 1...

4
nonedark2008
914 / 653 / 137
Регистрация: 28.07.2012
Сообщений: 1,767
06.08.2013, 10:48 #2
h_wolf, в char 8 бит. t=t<<8; - сдвиг на 8 бит. В итоге получаешь 0.
1
h_wolf
9 / 9 / 1
Регистрация: 24.01.2013
Сообщений: 212
06.08.2013, 11:17  [ТС] #3
nonedark2008, да, если сдвигать в седьмой строке на 7 бит все работает. Видимо не до конца разобрался, на бумаге все получалось правильно.

Добавлено через 3 минуты
nonedark2008, эээ... погодите. Но ведь мы вносим 8ми битное слово в unsigned int (32bit ширина), соответственно сдвиг влево на 8 бит справедлив и выносит char слово во второй байт, откуда после сдвига возвращается в 14 строке. Или я что-то не правильно понимаю.
0
nonedark2008
914 / 653 / 137
Регистрация: 28.07.2012
Сообщений: 1,767
06.08.2013, 11:47 #4
h_wolf, хех. Упс, облажался. >_>
Скопировал код в компилятор, он мне сразу и выдал:
Цитата Сообщение от h_wolf Посмотреть сообщение
t>>1;
- бессмысленная операция.
Должно быть t >>= 1;
0
h_wolf
9 / 9 / 1
Регистрация: 24.01.2013
Сообщений: 212
06.08.2013, 11:56  [ТС] #5
Глаза яйца. Все работает. Спасибо за ответы!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.08.2013, 11:56
Привет! Вот еще темы с ответами:

Ввести число и вывести результат циклического сдвига его битов на 1 разряд влево - C++
Проверьте пожалуйста, правильное ли решение. Ввести число и вывести результат циклического сдвига его битов на 1 разряд влево (все биты...

Не хватает опыта для того, чтобы понять ошибку в задаче циклического побитового сдвига - C++
Доброго времени суток! Помогите пожалуйста разобраться, почему вместо заданных мною, скажем 4 символов, после циклического сдвига он выдаёт...

Разработать класс строк, с функцией вывода, подсчетом длины и возможностью сдвига строки на 1 символ вправо - C++
Разработать класс строк в С++,с методом вывода строки, подсчетом длины строки, сдвиг строки на 1 символ вправо(имеется в виду последний...

Функция для сдвига строки - C++
Необходимо написать функцию для сдвига стринговой строки на n-е количество элементов.


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

Или воспользуйтесь поиском по форуму:
5
Yandex
Объявления
06.08.2013, 11:56
Ответ Создать тему
Опции темы

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