我试图将无符号整数值转换为表示为4个7位字节的数值;目标是使用罗兰的地址映射MIDI系统专用协议发送数据,该协议表示如下地址和大小值:
MSB LSB
--------- --------- --------- ---------
0aaa aaaa 0bbb bbbb 0ccc cccc 0ddd dddd
不幸的是,我真的不知道从哪里开始这样做;我们的目标是在Python3.x中实现这一点,我目前正在进行原型设计。我真正遇到的问题是数学和位操作,但奇怪的是,我甚至找不到任何通用的算法或经验法则。我发现的最接近的是大约十年前的Perl解决方案,但我在解读Perl方面也有点困难。除此之外,我只看到了几个C++问题,并用位元推荐答案。
对于一个特定的用法示例,假设我想要发送128字节的数据。这要求我只使用每个字节的低7位发送一个4字节大小的值。但是,该值通常为0x00000080,其中LSB中的高位为1,需要转换
对不起,如果这让人困惑,我可能离基地很远,但有人能告诉我正确的方向吗?我相信以前有人这样做过,因为它似乎会经常出现在MIDI编程中
可变长度量(如链接问题)使用不同的编码
无论如何,要将一个值拆分为7位字节,请在每个步骤中提取最低的7位,然后将剩余值右移7位,以便下一步中的下一部分位于正确的位置:
相关问题 更多 >
编程相关推荐