gpt4 book ai didi

java - 在 Java 中如何获得表示 unsigned int 的字节?

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

我有从 0 到 255 的整数,我需要将它们传递到编码为无符号字节的 OutputStream。我尝试使用像这样的掩码进行转换,但如果 i=1,我的流的另一端(需要 uint8_t 的串行设备)认为我已经发送了一个无符号整数 = 6。

OutputStream out;
public void writeToStream(int i) throws Exception {
out.write(((byte)(i & 0xff)));
}

我正在使用 Ubuntu 与位于 /dev/ttyUSB0 的 Arduino 进行通信,如果这会让事情变得或多或少有趣的话。

这是 Arduino 代码:

uint8_t nextByte() {
while(1) {
if(Serial.available() > 0) {
uint8_t b = Serial.read();
return b;
}
}
}

我还有一些与 Arduino 代码配合良好的 Python 代码,如果我在 Python 中使用此代码,Arduino 会很高兴地收到正确的整数:

class writerThread(threading.Thread): 
def __init__(self, threadID, name):
threading.Thread.__init__(self)
self.threadID = threadID
self.name = name
def run(self):
while True:
input = raw_input("[W}Give Me Input!")
if (input == "exit"):
exit("Goodbye");
print ("[W]You input %s\n" % input.strip())
fval = [ int(input.strip()) ]
ser.write("".join([chr(x) for x in fval]))

我最终也想在 Scala 中执行此操作,但在解决此问题时,我会转而使用 Java 以避免复杂性。

最佳答案

我想你只是想在这里out.write(i)。仅从 int 参数 i 写入低八位。

关于java - 在 Java 中如何获得表示 unsigned int 的字节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5366613/

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