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

Извлечь 3 бита числа A, начиная со второго и вставить их в число B, начиная с первого бита - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
Vadim_94
0 / 0 / 0
Регистрация: 29.09.2012
Сообщений: 10
29.09.2012, 11:32     Извлечь 3 бита числа A, начиная со второго и вставить их в число B, начиная с первого бита #1
Ввести целое A. Извлечь 3 бита числа A, начиная со второго и вставить их в число B, начиная с ервогоп бита. B=1A05h.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.09.2012, 11:32     Извлечь 3 бита числа A, начиная со второго и вставить их в число B, начиная с первого бита
Посмотрите здесь:

C++ Вставить в строку s содержимое s1 начиная с позиции n
Как обнулить первые 4-е бита начиная с певого заряженного (первые - старшие биты) C++
C++ Побитовые операции (программа, которая интерпретирует старшие 3 бита как некоторое число n...)
C++ Как правильно сложить два больших (64 бита) числа?
Даны два числа. Если квадратный корень из второго числа меньше первого числа, то увличить второе число в пять раз с++ C++
C++ Написать функцию, которая возвращает число, полученное из целого числа x, в котором единицы установлены в n разрядов, начиная с позиции p (крайний пра
C++ Задача с циклом (число N и b, значение бита под номером b числа N)
Даны действительные числа a1, ., a15. Все члены данной последовательности, начиная с первого положительного, уменьшить на 1 C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Buckstabue
 Аватар для Buckstabue
175 / 124 / 6
Регистрация: 12.01.2012
Сообщений: 624
29.09.2012, 14:12     Извлечь 3 бита числа A, начиная со второго и вставить их в число B, начиная с первого бита #2
Я с этими битовыми операциями слабо знаком, но решил бы это следующим образом
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
 
int main()
{
   int A;
   int A_mask = 07; // = 111b
   int B = 0x1A05;
 
   std::cout << "input A: ";
   std::cin >> A;
 
   A >>= 1;
   A &= A_mask;
   B <<= 3;
   B |= A;
 
   std::cout << "B = " << B << std::endl;
 
   return 0;
}
Yandex
Объявления
29.09.2012, 14:12     Извлечь 3 бита числа A, начиная со второго и вставить их в число B, начиная с первого бита
Ответ Создать тему
Опции темы

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