Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Помогите разобраться
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Программирование
Andruxa-1
Добрый день!

У меня есть 32 битное число, есть 4 байта. Как мне эти 4 байта упаковать в 32 бита. Последовательность байтов я знаю. И как потом заново получить эти 4 байта. Заранее спасибо!
Сергей Борщ
Какой язык программирования вы используете?
Andruxa-1
Учу С. Разобрался с битовыми операциями байт-байт. А вот перевод с одной разрядности в другую пока не нашел.
jorikdima
Цитата(Andruxa-1 @ Jun 7 2010, 17:09) *
Учу С. Разобрался с битовыми операциями байт-байт. А вот перевод с одной разрядности в другую пока не нашел.

нет такой операции в С
Код
unsigned int var;
uinsigned char v1, v2, v3, v4;
var = ((unsigned int)v1) << 24;
var |= ((unsigned int)v2) << 16;
var |= ((unsigned int)v3) << 8;
var |= (unsigned int)v1;

Как-то так.
MrYuran
Код
union FourBytes{
    char Bytes[4];
    int Words[2];
    long DoubleWord;
    float Float;
};

FourBytes.Bytes[2] - 3-й байт
FourBytes.Words[0] - младшее слово (2 байта)
FourBytes.Float - 4 байта в формате float

...Если это то, что я подумал...
Andruxa-1
Цитата(jorikdima @ Jun 7 2010, 16:19) *
нет такой операции в С
Код
unsigned int var;
погрызли мыши

Как-то так.



Да действительно так! Огромное спасибо!
ViKo
Цитата(Andruxa-1 @ Jun 7 2010, 16:39) *
Да действительно так! Огромное спасибо!

То, что вам предложили позже (union), вообще не потребует преобразований.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.