Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
linkoln78
1 / 1 / 0
Регистрация: 21.05.2012
Сообщений: 102
#1

Булевые операции - C++

27.08.2013, 13:55. Просмотров 641. Ответов 3
Метки нет (Все метки)

Есть байт, состоящий из 8 бит. типа unsigned char
биты 0-2 одно значение(может быть значение от 1 до 8)
биты 3-5 второе(от 1 до 8)
биты 6-8 третье(от 1-3).
Как это байт конвектировать в 3 переменных int? тоесть надо извлечь отдельно каждое значение..Спасибо заранее
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.08.2013, 13:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Булевые операции (C++):

Программирование на булевые функции - C++
Привет всем. Я тут решал задачу под мат-логике. И мне интересно, а возможно ли ПК (на C++) научить решать подобные задачи на булевы...

Булевые массивы "веса" от 1 - n - C++
Задача в том, что нужно создать все булевые массивы одной длины, количество "1" в которых равно 1,2...n. То есть для случая l = 4 и n =...

Перегрузить операции сравнения комплексных чисел и операции потокового вывода - C++
Создать класс комплексное число. Перегрузить операции сравнения комплексных чисел! =, ==,>, <,> =, <= И операции потокового ввода-вывода. ...

Заменить операции ifstream на операции fprintf - C++
Собственно как и написано в заголовке заменить операции ifstream на fprintf со всеми вытекающими(типо getline) необходимо мне. Помогите...

Битовые операции и операции смещения языка С - C++
Доброго времени суток господа,помогите пожалуйста.Есть 2 кода к задаче,первый работает верно(переводит обычные числа в 16-ти ричные),а...

Записать логические выражения, используя условные операторы, операции отношений и логические операции - C++
Записать логические выражения, используя условные операторы, операции отношений и логические операции алгоритмического языка ...

3
ВСарости
0 / 0 / 0
Регистрация: 26.08.2013
Сообщений: 10
27.08.2013, 14:11 #2
Через Union, к примеру.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
union {
    unsigned char val;
    struct{
        unsigned first:3;
        unsigned second:3;
        unsigned third:2;
    };
} some;
 
some.val = value;
 
int first = some.first;
int second = some.second;
int third = some.third;
0
Герц
524 / 341 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
27.08.2013, 14:14 #3
Битовые поля + union.
Можно битовыми операциями, но битовые поля предпочтительнее.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <cstdint>
struct BitMap {
    int8_t a:3;
    int8_t b:3;
    int8_t c:2;
};
 
union Mapper {
    uint8_t value;
    BitMap bits;
};
 
Mapper m = { 0x7f }; // 0111 1111
// m.bits.a == 0b011
// m.bits.b == 0b111
// m.bits.c == 0b11
1
BigLow
55 / 55 / 2
Регистрация: 07.07.2013
Сообщений: 345
27.08.2013, 14:16 #4
Цитата Сообщение от linkoln78 Посмотреть сообщение
биты 0-2 одно значение(может быть значение от 1 до 8)
8 не поместится в три бита. максимум семь. от 0 до 7
1
27.08.2013, 14:16
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.08.2013, 14:16
Привет! Вот еще темы с ответами:

Операции в С++ - C++
Я не могу понять что делают ети операции &gt;&gt; &lt;&lt; &amp;= |= ^= Обясните пожалуйста

Операции с указателями в С++ - C++
Используя приведенный ниже код разработать программу, используя в качестве контейнера для хранения данных динамические массивы. Для...

Побитовые операции - C++
Задание: Дано целое неотрицательное число. Определить количество составляющих его шестнадцатеричных цифр, содержащих в двоичном...

Битовые операции - C++
Есть число в двоичной системе, например &quot;01000001&quot;, рядом с единицами надо заменить нули на единички! то есть должно получится например...


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

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

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