在Java中设置自定义二进制数据消息的最简单方法是什么?

kuh*_*nto 5 java binary byte bit

来自C#世界并刷新Java,我了解到没有无符号字节/整数.我试图找出构建自定义二进制消息的最简单方法,例如以下示例:

在此输入图像描述

如您所见,某些整数值需要放入3位插槽.其他值是单位标志或其他大小字段.根据我的阅读,我应该在"下一个更大"的原语中工作,例如使用逐位运算符在整数中构建二进制字节.还有其他方法吗?我已经按照我在其他地方找到的一些例子(例如:这个例子与上图不匹配)来获得第一个字节结构:

shiftedValue1 = (value1 & 0xFF) << 5;
shiftedValue2 = (Value2 & 0xFF) << 2;
shiftedValue3 = (Value3 & 0xFF) << 1;
shiftedValue4 = (Value4 & 0xFF);
finalvalue = (shiftedValue1 & 0xFF) | (shiftedValue2 & 0xFF) | (shiftedValue3 & 0xFF) | (shiftedValue4 & 0xFF);
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来构造这些字节?我在4字节字段上使用了什么?多头?

Mat*_*all 1

似乎使用byte[](字节数组)或BitSets 更容易做到这一点。