使用 java 将两个整数写入一个字节的高 4 位和低 4 位

Write two integers into high 4bits and lower 4 bits in a byte using java

我有一个java代码可以从高4位读取一个无符号整数,从低4位读取另一个

 byte[] value = getBytes(1);
 int first = (value[0] & 0xF0) >> 4;
 int second   = value[0] & 0x0F;

我必须使用 java.

将这 2 个整数(第一个,第二个)写回新的 1 个字节

请帮帮我

基本上:

first << 4 | second

(假设firstsecond是用原码得到的,所以在0x0..0xF范围内)。

但是,int个操作数按位运算的结果是int,所以这个表达式的类型是int。您需要将其转换为 byte:

byte b = (byte) (first << 4 | second)