由于Java字节是有符号值,我正在尝试与C#程序建立TCP套接字连接,该程序期望字节无符号。
我无法更改C#部分的代码。
如何使用Java以正确的格式发送这些字节。
由于
答案 0 :(得分:7)
不,Java字节是签名值。通常,C#字节是无符号。 (您需要sbyte
类型来引用已签名的字节;我不记得上次使用sbyte
时。)
然而,在通过网络传输数据方面完全没有关系 - 通常你只是发送你所获得的任何二进制数据(例如你从文件中读取的数据),双方都会这样做正确的事。 Java端的值为-1的字节将作为C#端的值为255的字节出现。
如果您可以告诉我们更多关于完全您正在尝试做什么(数据是什么)我们可以提供更多帮助,但我强烈怀疑您可以忽略其中的差异这种情况。
答案 1 :(得分:1)
没关系。这些数字只是位的字符串,并且就位而言,它们是有符号或无符号的这一事实并不重要。并且它是传输的位,因此所有签名/未签名的信息都无关紧要。
无论签名/未签名, 1100101010101111
仍为1100101010101111
。