【发布时间】:2022-05-04 21:33:47
【问题描述】:
使用按位,我们如何以最高效的方式将这 3 个字节转换为这种模式中的两个短裤?:
(11111111)(01111110)(10000001) 3 个字节
(111111110111)(111010000001) 2 短裤
找到了一种将两个字节组合成一个短字节的方法,但是对于一个字节和 4 位的组合,尝试了几个小时的各种方法都没有成功。谢谢你的帮助。
byte byt1 = -1; // 11111111
byte byt2 = 126;// 01111110
byte byt3 = 129;// 10000001
short s_1_2 = (short) ((byt1 << 8) | (byt2 & 0xFF));
// value is 1111111101111110
short s1 = // want to be 111111110111
short s2 = // want to be 111010000001
-
如果你从字节到字符串,然后到短?这种方法可以与任何组合一起使用。所以最终你将失去 1 和 0 中的任何一个。
-
...以及来自另一个字节的 4 位....哪个4位?
-
@g00se 作为问题中的模式
标签: java bit-manipulation bitwise-operators bit-shift bitwise-and