0 / 0 / 0
Регистрация: 20.02.2011
Сообщений: 7
1

Циклический сдвиг битов

03.03.2014, 19:04. Показов 3534. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Создайте функцию, которая перемещает биты для unsigned int на заданное число битов влево, причем выходящие при сдвиге за левую границу переменной биты должны «вталкиваться» в переменную с правой стороны.
Прошу помощи. С++ ковырял года 4 назад,очень мало, что помню...
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.03.2014, 19:04
Ответы с готовыми решениями:

Циклический сдвиг битов!
Очень срочно нужна помощь. Нужно реализовать функцию, которая осуществляет циклический сдвиг...

Циклический сдвиг битов 2
Помогите пожалуйста решить вопрос. Необходимо реализовать на С++ операцию циклического сдвига битов...

Циклический сдвиг битов в байте
Привет. Мне нужно в байте (unsigned char) произвести циклический сдвиг. Как я понимаю >> и << это...

Циклический сдвиг битов в строке
Пишу шифрование IDEA. Там есть ключ длинной 128 бит. Этот ключ нужно сдвинуть на 25 бит...

2
С++ Beginner
120 / 120 / 77
Регистрация: 28.02.2013
Сообщений: 246
03.03.2014, 19:31 2
Лучший ответ Сообщение было отмечено gEgyLLIka как решение

Решение

Для char:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <iostream>
#include <bitset>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "russian");
    
    
    cout << "Введите значение в двоичном виде: ";
    const int count_bits = sizeof(char) * 8;
    bitset<count_bits> setOfBits;
    cin >> setOfBits;
    
    cout << "Введите число сдвигаемых бит: ";
    unsigned int sbits;
    cin >> sbits;
 
    for(unsigned i = 0; i < sbits; ++i)
    {
        bool head_bit = setOfBits[count_bits - 1];
        setOfBits <<= 1;
        setOfBits[0] = head_bit;
    }
    
    cout << "Результат: " << setOfBits << endl; 
    
    return 0;
}
0
Модератор
Эксперт С++
13498 / 10752 / 6407
Регистрация: 18.12.2011
Сообщений: 28,692
03.03.2014, 19:34 3
C++
1
2
3
4
5
6
7
8
9
10
11
12
unsigned shiftleft(unsigned dat,int n)
{
    unsigned mask=0x80000000,t;
    for(int i=0;i<n;i++)
    {
        t=dat&mask;
        dat <<= 1;
        if(t)
           dat |= 1;
    }
    return dat;
}
1
03.03.2014, 19:34
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.03.2014, 19:34
Помогаю со студенческими работами здесь

Циклический сдвиг битов по столбцу в битовой матрице
Нужна програмка которая создаёт матрицу битов 8х8 и дает возможность делать в ней цикличные сдвики...

Циклический сдвиг битов в байте влево или вправо
Кто-нибудь пробовал реализовать такую задачу на С++. Если да, то какой алгоритм? Например, если...

Осуществить циклический сдвиг битов в целом числе a на k позиций вправо
Осуществить циклический сдвиг битов в целом числе a на k позиций вправо.

Циклический сдвиг
Здравствуйте помогите пожалуйста мне надо все нечетные строки матрицы сдвинуть циклически на К...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru