gpt4 book ai didi

java - C 整数与 Java 读取的字节并集并重新转换为 Java int

转载 作者:行者123 更新时间:2023-11-30 17:30:19 25 4
gpt4 key购买 nike

我想用 C 通过串行线路发送一个编码为字节数组的整数,并使用 java 接收它,并将该数组放回 java int。

我正在使用 rs-232 发送由 C union 打包的字节数组中的四个字节。 (稍微奇怪的 typedef 是由 Arduino C 方言引起的)这里我发送例如十进制值 600它被封装在相应的类型中:

typedef union {
uint16_t integer;
byte binary[4];
} binaryInteger;

并使用以下功能发送:

void mcProxySend(binaryInteger bi){
for (byte i = 0; i < 4 ; i ++) {
mcProxySend(bi.binary[i]);
}
}

mcProxySend 只是一个带有偶尔转义字符的串行写入。

我已经解决了 Java 类的接收端问题。数据在流动,一点一点地,和我发送的一样。

我遇到的问题是如何重新组合 splinter 的整数。

最佳答案

由于我在写这个问题的同时找到了答案,所以我将发布我的解决方案。

dec 6000 的值为 bin 1011101110000,并通过并集将其拆分为

b[0] = 0 //(MSB) 
b[1] = 0
b[2] = 10111
b[3] = 1110000 //(LSB)

类似于this thread中的答案解决方案是将二进制值移位为新整数。这将重新创建原始字节结构,假设它们具有相同的位长度。

关于java - C 整数与 Java 读取的字节并集并重新转换为 Java int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25184251/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com