我如何在 Java 中发送大于 127 的字节 daha?
How can i send a byte daha which is greater than 127 in Java?
我正在使用 Java 开发 RFID reader 应用程序。 RFID reader 的消息类型必须以 0xA0 开头。这是强制性的。它以十进制形式表示为 160。但是在java字节值不能大于127。
我该如何解决?
你可以把0xA0放在一个字节中,如果你做算术,它只会被当作负数。不做算术就好了
只需发送(byte) 0xa0
。是的,作为 Java byte
它将是负数,但它仍然具有正确的 位 模式,这是 RFID 所关心的。
基本上,您很少需要将字节视为 数字 本身 - 更常见的做法是将它们视为恰好映射到数字的位序列。
例如,假设您有一个由单个字节组成的文件,位 11111111
。如果您读取 Java 中的数据,您将得到一个字节 -1。如果您在 C# 中读取该数据,您将得到一个字节 255。它是相同的数据,只是以稍微不同的方式查看。
数据就是数据。在java中,值为0xA0的byte会是一个负数,但是一个相同值的int会是一个正值。。。全靠解释。
您可以 write/put 字节 0xA0 到您的 stream/byte[],这应该不是问题
我正在使用 Java 开发 RFID reader 应用程序。 RFID reader 的消息类型必须以 0xA0 开头。这是强制性的。它以十进制形式表示为 160。但是在java字节值不能大于127。
我该如何解决?
你可以把0xA0放在一个字节中,如果你做算术,它只会被当作负数。不做算术就好了
只需发送(byte) 0xa0
。是的,作为 Java byte
它将是负数,但它仍然具有正确的 位 模式,这是 RFID 所关心的。
基本上,您很少需要将字节视为 数字 本身 - 更常见的做法是将它们视为恰好映射到数字的位序列。
例如,假设您有一个由单个字节组成的文件,位 11111111
。如果您读取 Java 中的数据,您将得到一个字节 -1。如果您在 C# 中读取该数据,您将得到一个字节 255。它是相同的数据,只是以稍微不同的方式查看。
数据就是数据。在java中,值为0xA0的byte会是一个负数,但是一个相同值的int会是一个正值。。。全靠解释。
您可以 write/put 字节 0xA0 到您的 stream/byte[],这应该不是问题