я могу это сделать в JavaЕсть ли компактный способ кодирования двоичных литералов в Java?
final byte[] b = new byte[]{0x01, 0x02, 0x04, 0x08,
(byte)0x80, 0x40, 0x20, (byte)0xff,
(byte)0xef, 0x40, 0x30, (byte)0xfe,
0x3f, (byte)0x90, 0x44, 0x78};
в то время как в Python 2.x я могу просто использовать
b = '\x01\x02\x04\x08\x80\x40\x20\xff\xef\x40\x30\xfe\x3f\x90\x44\x78'
Синтаксис Java боль и нуждается в (byte)
проливает обрабатывать значения с самым значительным битом ,
Есть ли более простой способ? (кроме написания вспомогательного класса, чтобы включить строку, такую как "01020408804020ffef4030fe3f904478"
, в byte[]
)
Вы можете использовать 'BigInteger', чтобы избежать необходимости писать класс-помощник самостоятельно. – resueman
* «В стороне от написания вспомогательного класса ...» * Я подозреваю, что нет. –
@malbarbo - Не дубликат этого вопроса, который просто хочет знать, как исправить проблему, вызванную отсутствием приведения. Я * знаю *, что метод по умолчанию для создания литерала массива байтов в Java требует отбрасываний, я хочу знать, есть ли способ выразить байтовые массивы более компактно. –