Java из 2 байтов

Я делаю школьный проект с использованием розеток. Я уже работал с java, но я никогда раньше не использовал сокеты, поэтому я немного потерялся. Мы создаем простую программу гонки, которая получает обновления гонки, то есть кто превзошел, кто был превзойден, круг, имя человека, который обновляет и количество обновлений, сделанных до сих пор. Проблема, с которой я столкнулся, заключается в том, что нас просят преобразовать в 1 байт первые 4 переменные, но последнее (количество обновлений) мы должны преобразовать в 2 байта, и только тогда мы отправим обработчику. Я уже преобразовал в 1 байт четыре переменные таким образом (пример):

byte b = new Integer(lap).byteValue();
out.write(b);

Это работает, и мы должны поступать именно так. Вопрос может быть очевиден, но у меня проблемы с ним.

вы можете использовать побитовые операции для этого

yaseco 22.12.2018 13:54

Всегда используйте Integer.valueOf вместо new Integer; но поскольку вы фактически просто качаете с new Integer(lap).byteValue(), (byte) lap эквивалентен.

Andy Turner 22.12.2018 14:10
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
2
67
1

Ответы 1

Вот решение для двух байтов:

b[0] = (byte) lap;
b[1] = (byte) (lap >> 8);

Другие вопросы по теме