реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Помогите разобраться, 32 = 8*4
Andruxa-1
сообщение Jun 7 2010, 12:50
Сообщение #1





Группа: Участник
Сообщений: 14
Регистрация: 28-05-10
Пользователь №: 57 586



Добрый день!

У меня есть 32 битное число, есть 4 байта. Как мне эти 4 байта упаковать в 32 бита. Последовательность байтов я знаю. И как потом заново получить эти 4 байта. Заранее спасибо!
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jun 7 2010, 13:01
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Какой язык программирования вы используете?


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Andruxa-1
сообщение Jun 7 2010, 13:09
Сообщение #3





Группа: Участник
Сообщений: 14
Регистрация: 28-05-10
Пользователь №: 57 586



Учу С. Разобрался с битовыми операциями байт-байт. А вот перевод с одной разрядности в другую пока не нашел.
Go to the top of the page
 
+Quote Post
jorikdima
сообщение Jun 7 2010, 13:19
Сообщение #4


тут может быть ваша реклама
*****

Группа: Свой
Сообщений: 1 164
Регистрация: 15-03-06
Из: Санкт-Петербург/CA
Пользователь №: 15 280



Цитата(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;

Как-то так.
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Jun 7 2010, 13:20
Сообщение #5


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Код
union FourBytes{
    char Bytes[4];
    int Words[2];
    long DoubleWord;
    float Float;
};

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

...Если это то, что я подумал...


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
Andruxa-1
сообщение Jun 7 2010, 13:39
Сообщение #6





Группа: Участник
Сообщений: 14
Регистрация: 28-05-10
Пользователь №: 57 586



Цитата(jorikdima @ Jun 7 2010, 16:19) *
нет такой операции в С
Код
unsigned int var;
погрызли мыши

Как-то так.



Да действительно так! Огромное спасибо!
Go to the top of the page
 
+Quote Post
ViKo
сообщение Jun 7 2010, 14:09
Сообщение #7


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



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

То, что вам предложили позже (union), вообще не потребует преобразований.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 6th July 2025 - 03:18
Рейтинг@Mail.ru


Страница сгенерированна за 0.01413 секунд с 7
ELECTRONIX ©2004-2016