2 / 2 / 0
Регистрация: 23.09.2013
Сообщений: 10
1

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

09.07.2014, 10:07. Показов 1325. Ответов 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, кто знает подскажите пожалуйста
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.07.2014, 10:07
Ответы с готовыми решениями:

Размер типов данных. Почему выводится разный результат для unsigned short и short
Здравствуйте. Обе переменных (usSh и Sh) размером 2 байта. С выводом значения переменной usSh...

Макс/мин значения short/unsigned short
Задача из книжки "Objective-C: The Big Nerd Ranch Guide 2ed", но сначала там объясняют просто Си....

Преобразование unsigned short в unsigned char
Как можно преобразовать unsigned short в unsigned char ?

Разница int, short, unsigned int, unsigned short
Есть например цикл который проходит по массиву в котором 100 элементов. В чем практическая выгода...

4
Модератор
Эксперт С++
13325 / 10629 / 6350
Регистрация: 18.12.2011
Сообщений: 28,384
09.07.2014, 10:13 2
Лучший ответ Сообщение было отмечено Frostiks25 как решение

Решение

Надо взять каждый байт отдельно.
Один из способов - через объединение
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];
1
Эксперт С++
1673 / 1045 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
09.07.2014, 10:14 3
Лучший ответ Сообщение было отмечено Frostiks25 как решение

Решение

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]);
}
1
Эксперт PHP
4896 / 3896 / 1615
Регистрация: 24.04.2014
Сообщений: 11,399
09.07.2014, 10:15 4
Лучший ответ Сообщение было отмечено Frostiks25 как решение

Решение

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
1
2 / 2 / 0
Регистрация: 23.09.2013
Сообщений: 10
09.07.2014, 10:18  [ТС] 5
Спасибо большое ребята за разъяснение!
0
09.07.2014, 10:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.07.2014, 10:18
Помогаю со студенческими работами здесь

Как побайтно считать значения переменной Unsigned Short
Ребята, прошу помощи. В доукментации стима написано: Unsigned Short Port number - usually 27015...

Определение диапазонов переменных типов char, short, int и long (как signed, так и unsigned)
Вроде до этого все читал внимательно, задание понимаю, как реализовать - не знаю. С только начал...

Unsigned short
*&quot;в массиве Unsigned short mas инвертировать биты того элемента, который содержит наибольшее...

Тип unsigned short
#include&lt;iostream&gt; using namespace std; unsigned short int USHORT; int main() { USHORT...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru