Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.05.2010, 11:41   #1
jodam
Пользователь
 
Регистрация: 13.05.2010
Сообщений: 10
По умолчанию работа с байтами и битами

Есть такая ф-я, я получаю шифрованные данные из com порта, смысл в том что нужно получить значение от 0 до 999. В двух байтах передается это число, причем в каждом из байт задействовано всего по 5 бит, в сумме 10 бит.
Застопорился я на том что: получаю данные, выдераю от туда эти 5 бит в виде
unsigned char buf[8];
bit[0] = x1; //11100
bit[1] = x2; //00110
вопрос =)) как скрестить байт 1 и байт 2 ? что бы получить общее число из из 11100001100 что является в десятичной системе 902.
jodam вне форума Ответить с цитированием
Старый 14.05.2010, 12:11   #2
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Если, скажем, в x1 и x2 есть паразитные биты в старших разрядах, то примерно так:
Код:
bit[0] = x1 & 31;
bit[1] = x2 & 31;
unsigned n = (bit[0] << 5) | (bit[1]);
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работа с битами тотошкин Общие вопросы C/C++ 2 22.04.2010 12:06
Работа с битами viktory Помощь студентам 8 02.10.2009 18:33
Работа с битами alexmikt Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 25.09.2009 13:24
Работа с битами в C dmitmal Общие вопросы C/C++ 5 20.05.2009 04:27
Работа с битами kesha2008 Общие вопросы C/C++ 2 24.02.2009 12:05