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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Frostiks25
2 / 2 / 0
Регистрация: 23.09.2013
Сообщений: 10
#1

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

09.07.2014, 10:07. Просмотров 229. Ответов 4
Метки нет (Все метки)

Ребята, прошу помощи.
В доукментации стима написано: Unsigned Short Port number - usually 27015 (69 87) - this is network ordered, which is unlike every other Steam protocol. Query Protocol
Но я понятия не иммею, как из 27015 получить 0x69 и 0x87, кто знает подскажите пожалуйста
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.07.2014, 10:07     Unsigned Short - Как из 27015 получить 0x69 и 0x87
Посмотрите здесь:

дан массив char[22] как превратить отдельные байты в int, short C++
C++ как задать границу для типа данных unsigned char*
C++ short int и short
C++ Разница int, short, unsigned int, unsigned short
Почему такой вывод (sizeof(short + short) - 4) C++
C++ Как записать Short в два char'a?
Unary minus operator applied to unsigned type, result still unsigned C++
Как получить адрес переменной типа unsigned char? C++
Тип unsigned short C++
Двоичный дамп short и char выводится как int C++
C++ Не могу вывести unsigned char символ. Как исправить?
C++ Undefined reference to Out32(short, short)

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
6109 / 5712 / 1849
Регистрация: 18.12.2011
Сообщений: 14,586
Завершенные тесты: 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
Эксперт С++
1599 / 991 / 117
Регистрация: 27.09.2009
Сообщений: 1,910
Завершенные тесты: 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
1957 / 1621 / 589
Регистрация: 24.04.2014
Сообщений: 4,609
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
Ответ Создать тему
Опции темы

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