使用 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
(假设first
和second
是用原码得到的,所以在0x0..0xF
范围内)。
但是,int
个操作数按位运算的结果是int
,所以这个表达式的类型是int
。您需要将其转换为 byte
:
byte b = (byte) (first << 4 | second)
我有一个java代码可以从高4位读取一个无符号整数,从低4位读取另一个
byte[] value = getBytes(1);
int first = (value[0] & 0xF0) >> 4;
int second = value[0] & 0x0F;
我必须使用 java.
将这 2 个整数(第一个,第二个)写回新的 1 个字节请帮帮我
基本上:
first << 4 | second
(假设first
和second
是用原码得到的,所以在0x0..0xF
范围内)。
但是,int
个操作数按位运算的结果是int
,所以这个表达式的类型是int
。您需要将其转换为 byte
:
byte b = (byte) (first << 4 | second)