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

Побитовые операции (программа, которая интерпретирует старшие 3 бита как некоторое число n...) - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
ivani493
Сообщений: n/a
23.01.2013, 14:05     Побитовые операции (программа, которая интерпретирует старшие 3 бита как некоторое число n...) #1
Уважаемые форумчане, нужна ваша помощь.
Нужно составить программу, которая интерпретирует старшие 3 бита как некоторое число n и оставшиеся разряды сдвинуть циклически влево на n разрядов.
За помощь буду очень благодарен!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.01.2013, 14:05     Побитовые операции (программа, которая интерпретирует старшие 3 бита как некоторое число n...)
Посмотрите здесь:

C++ Побитовые операции
C++ Извлечь 3 бита числа A, начиная со второго и вставить их в число B, начиная с первого бита
Как обнулить первые 4-е бита начиная с певого заряженного (первые - старшие биты) C++
Работа со стеком. Программа, которая к вершине стека добавляет некоторое число, а следующему элементу присваивает значение предыдущего C++
C++ Побитовые операции
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vua72
410 / 410 / 83
Регистрация: 28.11.2010
Сообщений: 1,158
27.01.2013, 02:35     Побитовые операции (программа, которая интерпретирует старшие 3 бита как некоторое число n...) #21
ValeryS, не, я осваивающему
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Valli1
4 / 4 / 0
Регистрация: 14.09.2012
Сообщений: 64
27.01.2013, 22:20     Побитовые операции (программа, которая интерпретирует старшие 3 бита как некоторое число n...) #22
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<iostream>
int main()
{
unsigned int t=2147483648;
unsigned int x=1234;
unsigned int i=0;
while(t>=x){
t=t>>1;
i++;}//отсуп от 32 бита
unsigned int t1=(32-i);//количество бит
unsigned int x2=x>>(t1-3);//значение 3х бит
unsigned int x3=x<<32-t1+3;//удаляем первые 3 бита
unsigned int x4=x3>>(32-t1+3);//восстанавливаем без 3х бит в исх. полож.
unsigned int x5=x4<<x2;//начало сдвига
unsigned int x6=x4>>(32-x2);
unsigned int x7=x5 | x6;//окончание сдвига 
std::cout<<x7<<'\n';
std::cin.get();
std::cin.get();
 
    return 0;
}
Добавлено через 3 часа 42 минуты
Правильно или нет. Я в начале не то скопировал с опечаткой.
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,043
27.01.2013, 22:24     Побитовые операции (программа, которая интерпретирует старшие 3 бита как некоторое число n...) #23
Цитата Сообщение от Valli1 Посмотреть сообщение
Правильно или нет.
смотря чего ты хотел
вот это например что
Цитата Сообщение от Valli1 Посмотреть сообщение
unsigned int t1=(32-i);//количество бит
количество бит чего?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.01.2013, 00:20     Побитовые операции (программа, которая интерпретирует старшие 3 бита как некоторое число n...)
Еще ссылки по теме:

C++ Функции. побитовые операции. Написать функцию, которая для заданного целого числа Х вычисляет количество единичных битов в этом числе
Побитовые операции: в массиве определить число, которое не имеет пары, с использованием xor C++
Побитовые операции. Получить целое число, отбросив нечётные биты данного числа k C++

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

Или воспользуйтесь поиском по форуму:
Valli1
4 / 4 / 0
Регистрация: 14.09.2012
Сообщений: 64
28.01.2013, 00:20     Побитовые операции (программа, которая интерпретирует старшие 3 бита как некоторое число n...) #24
Все вроде правильно
x4=0.....11010010 это число сдвинуть на число равное первым 3м битам =x2=4
получилось0... 110100100000
потом сдвигаю x4 вправо 0....00000
суммма равна x5=x7.

Добавлено через 25 минут
Цитата Сообщение от ValeryS Посмотреть сообщение
смотря чего ты хотел
вот это например что

количество бит чего?
I это количество бит от 32 до старшего(единичного) бита x.
Соответственно t1= (32-i) длина числа от младшего до старшего(единичного) бита(x)

Добавлено через 53 минуты
C++
1
2
3
unsigned int x5=x4>>x2;//начало циклич. сдвига
unsigned int x6=x4<<(32-x2);
//окончание сдвига
Если в лево сдвигать 14 и 15 заменить на это.
Yandex
Объявления
28.01.2013, 00:20     Побитовые операции (программа, которая интерпретирует старшие 3 бита как некоторое число n...)
Ответ Создать тему
Опции темы

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