Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
10 / 10 / 2
Регистрация: 24.01.2013
Сообщений: 212
1

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

06.08.2013, 10:38. Просмотров 1082. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.08.2013, 10:38
Ответы с готовыми решениями:

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

Рекурсивная функция кругового сдвига массива вправо
SOS!!!!! Напишите рекурсивную функцию, которая принимает двухмерный массив целых чисел и количество...

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

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

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

Добавлено через 3 минуты
nonedark2008, эээ... погодите. Но ведь мы вносим 8ми битное слово в unsigned int (32bit ширина), соответственно сдвиг влево на 8 бит справедлив и выносит char слово во второй байт, откуда после сдвига возвращается в 14 строке. Или я что-то не правильно понимаю.
0
1346 / 986 / 312
Регистрация: 28.07.2012
Сообщений: 2,743
06.08.2013, 11:47 4
h_wolf, хех. Упс, облажался. >_>
Скопировал код в компилятор, он мне сразу и выдал:
Цитата Сообщение от h_wolf Посмотреть сообщение
t>>1;
- бессмысленная операция.
Должно быть t >>= 1;
0
10 / 10 / 2
Регистрация: 24.01.2013
Сообщений: 212
06.08.2013, 11:56  [ТС] 5
Глаза яйца. Все работает. Спасибо за ответы!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.08.2013, 11:56

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

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

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

Написать программы шифрования и расшифровки файла методом циклического сдвига
Написать программы шифрования и расшифровки файла методом циклического сдвига. Т.е. каждый символ...

Матрицы: определить номера строк, совпадающих полностью или в результате циклического сдвига
Элементами целочисленной матрицы являются 0 или 1. Определить: - номера строк, совпадающих...

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

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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