cpp:javachar中的char(-1)

cpp:javachar中的char(-1),java,c++,Java,C++,我有一个客户端服务器应用程序。客户机上的C++,服务器上的java。 我正在将字节流从客户端发送到服务器,并从服务器发送到客户端。 请告诉我,当我从C++发送 char(-1)< /强>时,java中的值等于它? 在CPP代码中,我必须从爪哇发送到C++的什么值,以获得 char(-1)< /强>?p> 当您通过字节流写入时,char(-1)以255的形式到达,因为字节流通常传输无符号字节。 读取流结尾时读取的-1不能明确发送,只能通过关闭流来发送。当您通过字节流写入时,您的字符(-1)作为25

我有一个客户端服务器应用程序。客户机上的C++,服务器上的java。 我正在将字节流从客户端发送到服务器,并从服务器发送到客户端。
请告诉我,当我从C++发送<强> char(-1)< /强>时,java中的值等于它?
在CPP代码中,我必须从爪哇发送到C++的什么值,以获得<强> char(-1)< /强>?p> 当您通过字节流写入时,
char(-1)
255
的形式到达,因为字节流通常传输无符号字节。
读取流结尾时读取的
-1
不能明确发送,只能通过关闭流来发送。

当您通过字节流写入时,您的
字符(-1)
作为
255
到达,因为字节流通常传输无符号字节。
读取流结尾时读取的
-1
不能明确发送,只能通过关闭流来发送。

没有单一答案;这取决于C++如何编码数据以及java如何解释数据。
char(-1)
最常见的编码是数字255。请注意,这不是由C++定义的;补语系统可能将其编码为254。但也要注意的是,有无数种方法可以跨线路对数据进行编码:Elias编码、各种ASN.1编码、十进制数字、十六进制等


在Java端,即使假设采用简单的字符到字节编码,也取决于如何将字节反序列化以及转换为何种类型。

没有单一的答案;这取决于C++如何编码数据以及java如何解释数据。
char(-1)
最常见的编码是数字255。请注意,这不是由C++定义的;补语系统可能将其编码为254。但也要注意的是,有无数种方法可以跨线路对数据进行编码:Elias编码、各种ASN.1编码、十进制数字、十六进制等


在Java端,即使假设一个简单的字符到字节编码,它也取决于如何将字节反序列化以及转换成什么类型。

所以Cpp中的字符(-1)在Java中等于(字节)255?正如我所说,您使用的是字节流,字节流是无符号的,
-1
是使用2s补码进行二进制编码的,补码等于0xff`或
255
。Java字节是有符号的,所以如果你把它读入字节数组,你会得到一个
-1
,但是Java中的所有stream
read()
方法都返回无符号字节,所以你会得到
255
。所以Cpp中的char(-1)在Java中等于(byte)255?正如我说的,你使用的是字节流,字节流是无符号的,
-1
是使用等于“0xff”或
255
的2s补码进行二进制编码的。Java字节是有符号的,所以如果你把它读入字节数组,你会得到一个
-1
,但是Java中的所有stream
read()
方法都返回无符号字节,所以你会得到
255
。现在我正在把serializator从Java写到Cpp,所以我回答这个问题:)现在我正在把serializator从Java写到Cpp,所以我回答这个问题:)如果你同时编写客户端和服务器,为什么不简单地尝试一下呢?如果你同时编写客户端和服务器,为什么不简单地尝试一下呢?