Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
0 / 0 / 0
Регистрация: 10.02.2015
Сообщений: 15
1

Работа с битами числа

21.02.2015, 16:51. Показов 2551. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Извлечь 5 битов числа A, начиная со второго и вставить их в число B, начиная с третьего бита.

Нашел код Извлечь 3 бита числа A, начиная со второго и вставить их в число B, начиная с первого бита ,но как его изменить под мое задание не знаю.Т.к не понимаю даже ,что в коде происходит
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.02.2015, 16:51
Ответы с готовыми решениями:

Работа с битами И Работа с символьными данными
1. Ввести 8 символов. В символе с наибольшим кодом заменить 5-й бит единицей, а в символе с...

Работа с битами
Не могу понять, почему не правильно работает программа. Программа зашифровывает строку, выводит,...

работа с битами
доброй ночи, форумчане, необходима ваша помощь) как и всем тут... вот изучаю с++ и добрался до...

Работа с битами
В общем вот локальная проблема: есть int, который выступает в роли сетки нулей и единиц, два...

4
7787 / 6555 / 2983
Регистрация: 14.04.2014
Сообщений: 28,633
21.02.2015, 17:14 2
Лучший ответ Сообщение было отмечено ispirit как решение

Решение

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 = 1F; // = 11111b
   int B = 0x1A05;
 
   std::cout << "input A: ";
   std::cin >> A;
 
   A >>= 1;
   A &= A_mask;
   B <<= 5;
   B |= A;
 
   std::cout << "B = " << B << std::endl;
 
   return 0;
}
1
0 / 0 / 0
Регистрация: 10.02.2015
Сообщений: 15
21.02.2015, 17:36  [ТС] 3
Спасибо!

Добавлено через 8 минут
Только вопрос.А где здесь вообще указание ,что с третьего бита надо начинать?
0
7787 / 6555 / 2983
Регистрация: 14.04.2014
Сообщений: 28,633
21.02.2015, 18:18 4
Да, про это забыли. Вот другой вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
 
int main()
{
   int A;
   int A_mask = 0x1F; // = 11111b
   int B = 0x1A05;
 
   std::cout << "input A: ";
   std::cin >> A;
 
   A = ((A >> 1) & A_mask) << 3;
   B = (B & ~(A_mask << 3)) | A;
 
   std::cout << "B = " << B << std::endl;
 
   return 0;
}
0
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
21.02.2015, 18:59 5
C++
1
    B = (B & ~(B & 0x7c)) | ((A & 0x3e) << 1);
0
21.02.2015, 18:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.02.2015, 18:59
Помогаю со студенческими работами здесь

Работа с битами
Я уже задолбался... :wall: Может мне кто нибудь подскажет как из 00111010 (58) получить...

Работа с битами.
Здрасте. Дана задача: Определить на сколько в числе А больше значущих битов, что равны единице, чем...

Работа с битами
три раза писал но все равно не получается((( 1-)Ввести последовательность из 8 символов. Сравнить...

Работа с битами.
помогите!! как писать эту на программе с++ Ввести последовательность из 8 символов. Сравнить 5-й...


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

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