合并两个字节?

时间:2017-11-22 02:00:54

标签: java android byte

我正在学习MIDI是如何工作的,我想知道如何合并两个字节。有一段陈述以下内容

“状态和通道字节合并为一个字节(00-FF)因为这些消息的MSB(最高有效字节)为1,所以命令状态实际上以80十六进制(128和最多255)开始LSB(最低有效字节取0-F十六进制(0到15)的值来指定命令将被发送到哪个MIDI通道。命令消息告诉MIDI装置执行某些类型的事情,如播放音符,改变音量,添加效果和其他类型的东西。此表显示了不同的命令状态以及它们的作用。“

我不是100%确定将字节合并为一个字节意味着什么。任何帮助,将不胜感激。如果您可以在java中提供一个如何执行此操作的示例,我将更加感激。

1 个答案:

答案 0 :(得分:0)

所以我找到了问题的答案。

Byte b1 = 0xF;
Byte b2 = 0xF;
Byte merged = (b1 >> 4 | b2);

字节1向左移位4位以保证它是最高有效位,而字节2是按位或最低有效位。重要的是我上面发布的段落说你可以将两个字节合并在一起。两个字节必须最多为4位。如果它们总共超过8位,则结果为short或int,具体取决于结果的大小。