我有两个单独的应用程序,一个用java编写,另一个用C++编写,通过套接字彼此通信。我试图通过减少数据结构中的字节数来满足带宽需求。我的解决方案中的一部分是将存储在C++应用程序中的变量作为布尔值作为单个位发送,但我不确定如何将单个1或0放入char *缓冲区。我意识到一个字符必须是一个完整的字节,但我有许多bools可以通过套接字以1和0的相同字节传递。我如何在C++中完成这项工作?在C++中将bool序列化为单个位并将其反序列化为java中的布尔值
在事情的另一方面,我将如何解析1和0代表我的布尔到Java应用程序中的布尔值的字节?我目前在我的Java应用程序中使用了一个ByteBuffer。这与我想要做什么兼容?如果是这样,我该如何做到这一点,如果没有,那么什么是替代解决方案?
我怎样才能有效地确定什么字符代表我的8个布尔人? – ping
@平你不一定非得。您可以使用bitshift操作来打包角色!只要你每次把这些位按照相同的顺序转换成char,你就可以按照相反的顺序将它们移回去。 – JGroven