|  |      1whywhywhy      2020-03-09 16:26:13 +08:00 第 8 个位不使用,当第 8 个位为 1 的时候,启用第二个字节,以此类推 | 
|  |      2lcdtyph      2020-03-09 16:28:35 +08:00 via iPhone 如果错误类型很多的话是不是设计单独的错误帧比较好呢 | 
|  |      3kizunai      2020-03-09 16:29:25 +08:00 哈夫曼编码 | 
|  |      4swulling      2020-03-09 16:30:56 +08:00 直接预留 2 个字节不就可以了 | 
|      5hhhsuan      2020-03-09 16:38:55 +08:00 via Android 用两个字节或更多,别把问题搞复杂 | 
|  |      6noe132      2020-03-09 19:09:37 +08:00 via Android 8bit 除非打破存放超过 8bit 的信息?除非你的比特能表示 3 种状态 | 
|  |      7also24      2020-03-09 19:11:25 +08:00 via Android 楼主可以看一下 utf-8 是如何实现的 『变长编码』。 // 其实就是一楼说的那样 | 
|  |      8Yourshell      2020-03-09 19:14:27 +08:00 8^2 还不够吗 | 
|  |      9also24      2020-03-09 19:18:43 +08:00 via Android 想了一下,有个地方好像我想当然了。 楼主这里需要补充一个信息: 这 8 种错误是否他互斥的?是否会有同时出现的情况? 如果说是互斥的,只有其中一种会出现,那你实际上需要保存的只是 1 个数字, 那 8 bit 足够你保存 256 个数字了。 如果说,各种错误并不互斥,可以同时出现,那就是我在 7 楼说的情况。 | 
|  |      10Mohanson      2020-03-09 19:25:17 +08:00 建议重新设计自己的二进制协议减少错误数量, 我看过一些二进制网络协议像 socks4/socks5, 错误数量个数普遍在 10 个以内, 但均使用一个 byte 表示.  换个角度想想, 如果你的二进制协议单单不同的错误类型就超过 256 个, 这个"协议"已经臃肿的不像话了吧, **更像是应用层而非协议层**. |