Форум программистов, компьютерный форум CyberForum.ru

Unsigned Short - Как из 27015 получить 0x69 и 0x87 - C++

Восстановить пароль Регистрация
 
Frostiks25
2 / 2 / 0
Регистрация: 23.09.2013
Сообщений: 10
09.07.2014, 10:07     Unsigned Short - Как из 27015 получить 0x69 и 0x87 #1
Ребята, прошу помощи.
В доукментации стима написано: Unsigned Short Port number - usually 27015 (69 87) - this is network ordered, which is unlike every other Steam protocol. Query Protocol
Но я понятия не иммею, как из 27015 получить 0x69 и 0x87, кто знает подскажите пожалуйста
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5946 / 5551 / 1784
Регистрация: 18.12.2011
Сообщений: 14,181
Завершенные тесты: 1
09.07.2014, 10:13     Unsigned Short - Как из 27015 получить 0x69 и 0x87 #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Надо взять каждый байт отдельно.
Один из способов - через объединение
C++
1
2
3
4
5
6
7
union A
{
   unsigned short x;
   unsigned char t[2];
}a;
a.x=27015;
cout<<hex<<(int)a.t[0]<<' '<<(int)a.t[1];
Nick Alte
Эксперт С++
1590 / 982 / 115
Регистрация: 27.09.2009
Сообщений: 1,897
Завершенные тесты: 1
09.07.2014, 10:14     Unsigned Short - Как из 27015 получить 0x69 и 0x87 #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
#include <cstdio>
const unsigned int portnum = 27015;
const unsigned char bytes[2] = {(portnum >> 8) & 0xFF, portnum & 0xFF};
int main()
{
    std::printf("0x%02X\n%0x%02X", bytes[0], bytes[1]);
}
Jewbacabra
1791 / 1506 / 539
Регистрация: 24.04.2014
Сообщений: 4,231
09.07.2014, 10:15     Unsigned Short - Как из 27015 получить 0x69 и 0x87 #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
27015 в двоичном виде: 0110 1001 1000 0111
0110 - в 16ричной системе 6
1001 - 9
1000 - 8
0111 - 7
27015 - 0x6987
C++
1
2
3
cout << hex << 27015;
cout << hex << 27015 & 0xff00;
cout << hex << 27015 & 0xff
Frostiks25
2 / 2 / 0
Регистрация: 23.09.2013
Сообщений: 10
09.07.2014, 10:18  [ТС]     Unsigned Short - Как из 27015 получить 0x69 и 0x87 #5
Спасибо большое ребята за разъяснение!
Yandex
Объявления
09.07.2014, 10:18     Unsigned Short - Как из 27015 получить 0x69 и 0x87
Ответ Создать тему
Опции темы

Текущее время: 19:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru