我有兩個單獨的應用程序,一個用java編寫,另一個用C++編寫,通過套接字彼此通信。我試圖通過減少數據結構中的字節數來滿足帶寬需求。我的解決方案中的一部分是將存儲在C++應用程序中的變量作爲布爾值作爲單個位發送,但我不確定如何將單個1或0放入char *緩衝區。我意識到一個字符必須是一個完整的字節,但我有許多bools可以通過套接字以1和0的相同字節傳遞。我如何在C++中完成這項工作?在C++中將bool序列化爲單個位並將其反序列化爲java中的布爾值
在事情的另一方面,我將如何解析1和0代表我的布爾到Java應用程序中的布爾值的字節?我目前在我的Java應用程序中使用了一個ByteBuffer。這與我想要做什麼兼容?如果是這樣,我該如何做到這一點,如果沒有,那麼什麼是替代解決方案?
我怎樣纔能有效地確定什麼字符代表我的8個布爾人? – ping
@平你不一定非得。您可以使用bitshift操作來打包角色!只要你每次把這些位按照相同的順序轉換成char,你就可以按照相反的順序將它們移回去。 – JGroven