将字节数组的部分转换为整数值
我目前正在制作一个 Android 应用程序,它接受来自设备的蓝牙测量。数据的封装方式是4字节。我需要从这些字节中获取两个值。
第一个值由以下部分组成:第一个字节的 6 位和 7 位以及字节 2 的位 0 到位 6
第二个值更简单,由完整的第三个字节组成。
访问这些位值、组合它们并将它们转换为整数值的好方法是什么?现在我正在尝试从字节数组转换为位集,然后访问各个位以创建新字节,然后将其转换为整数。
谢谢,请问我是否表述得不够清楚。
I am currently making an android application which accepts bluetooth measurement from a device. The way the data is packaged is in 4 bytes. I need to get two values out of these bytes.
First value is made up of: 6bit and 7bit of first byte and bit 0 to bit 6 of byte 2
Second values is simpler and consists of the full 3rd byte.
What is a good way to access these bit values, combine them and convert them to integer values? Right now i'm trying to convert from byte array to bitset, and then access individual bits to create new bytes that would then be converted to a integer.
Thanks, and please ask if I am not being clear enough.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我想通了:我使用此方法将字节数组转换为 int
然后我使用了所描述的方法 pokey 。感谢您的帮助!
I figured it out: I converted the byte array to int using this method
Then I used the method pokey described. Thanks for your help!
我不确定我是否正确理解了您的格式。
该位掩码是否对应于您的第一个值?
即位 16-22、30、31(此处使用基于零的索引,即位 31 是最后一位)。
另一件事,你的值预计是有符号的还是无符号的?
无论如何,如果这是我假设的方式,那么您可以使用一些位掩码将其转换为这样:
使用其他值以相同的方式进行转换。定义一个位掩码并将其右移。完毕。
干杯
im not sure if i understood your format correctly.
Does this bitmask correspond to your first value?
That is bits 16-22,30,31 (zero based indexing used here, i.e. bit 31 is last bit).
Another thing, is your value expected to be signed or unsigned?
Anyway, if it is the way i assume then you can convert it like this with some bitmasks:
Do that in the same way with your other values. Define a bitmask and shift it to the right. Done.
Cheers