我有两组值。每个都在 -15 到 + 15 的范围内,包括 0。
我设法用 8 位表示两个数字。这些位中的 4 个可能属于负集,另外 4 个是正集。
每当我读取该位序列时,我都希望能够确定最初的 4 位是 + 还是 -。
有没有办法使用打包和解包的按位运算来完成这个?还是其他聪明的方法?
提前致谢。
更新:这里是我想要实现的一个示例:
在这 31 个值中,我只需要使用 8 位表示两个值,例如我有数字 14+ 和 15+。它们可以都是正面的,也可以各有一个,但它们不能都是负面的。所以 14 = 1110 和 15 = 1111(取出所有 0);bitsequence = 11101111 所以拆包时我知道字节239 = 11101111,实际上通过解析位序列分别代表数字14+和15+。但是,当任何一个数字为负时,我都很难过。