Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

как упаковать два числа?

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> как упаковать два числа?
Имя
Сообщение << Старые топики   Новые топики >>
как упаковать два числа? - 2008-02-21 09:26:49.006666   
RasenHerz

Сообщений: 303
Оценки: 0
Присоединился: 2007-11-27 21:17:15.833333
к примеру, есть числа: 3120 и 26
упаковываю так: int a = (int)((3120 &lt;&lt; 16) | (26 &lt;&lt; 8));
распаковываю первое число: int b = (int)((a &gt;&gt; 16) & 0xffffffff); (получаю 3120)

а как распаковать второе? побовал так: ((a &gt;&gt; 8) & 0xffffffff) и ((a &gt;&gt; 8) & (a &gt;&gt; 16) & 0xffffffff).
ни первый, ни второй способ эффекта не дал.
Post #: 1
RE: как упаковать два числа? - 2008-02-21 11:06:46.426666   
redsh

Сообщений: 338
Оценки: 0
Присоединился: 2007-06-17 22:35:25.540000
#define MAKEWORD(l, h) (l | (h &lt;&lt; 16))
#define LOWORD(a) (h & 0xffff)
#define HIWORD(a) (h &gt;&gt; 16)

запаковка:
packed_value = MAKEWORD(3120, 26);

распаковка:
value1 = LOWORD(packed_value);
value2 = HIWORD(packed_value);
Post #: 2
RE: как упаковать два числа? - 2008-02-21 13:33:08.630000   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
redsh, windows.h решает =)
Post #: 3
RE: как упаковать два числа? - 2008-02-21 15:14:51.896666   
RasenHerz

Сообщений: 303
Оценки: 0
Присоединился: 2007-11-27 21:17:15.833333
quote:

redsh, windows.h решает =)


смеешся? =))) я на LINUX'e….
Post #: 4
RE: как упаковать два числа? - 2008-02-21 16:30:41.926666   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
А какая разница. Тебе из заголовочных файлов MSVS привели вырезку. Легко и понятно )
Post #: 5
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> как упаковать два числа?







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.