使用&;在java中将字节转换为整数;及|
我需要使用使用&;在java中将字节转换为整数;及|,java,byte,data-conversion,Java,Byte,Data Conversion,我需要使用&和|将1字节转换为整数。转换后的输出必须是具有以下字节的整数:(0xFF)(byte)(byte)(byte) 例如: 输入: 00000111 输出: 11111111000001110000011100000111 如果字节在范围[0127] int integer=7; byte a=(byte)integer; int b=(0xFF<<24)|(a<<16)|(a<<8)|(a); System.out.println(Integ
&
和|
将1字节转换为整数。转换后的输出必须是具有以下字节的整数:(0xFF)(byte)(byte)(byte)
例如:
输入:
00000111
输出:
11111111000001110000011100000111
如果字节在范围[0127]
int integer=7;
byte a=(byte)integer;
int b=(0xFF<<24)|(a<<16)|(a<<8)|(a);
System.out.println(Integer.toBinaryString(b));
错误输出:
11111111111111111111111110000000
预期产出:
11111111100000001000000010000000
发生这种情况的原因是,当您换档
a
时,前面只剩下1
s
例如:
a试试这个。它基本上是作为左移,和,和或操作
byte a = (byte)240;
byte b = (byte)128;
byte c = 15;
int v = IntStream.of(0xFF, b, c, d).map(by-> by & 0xFF).reduce(0,
(r, s) -> (r << 8) | s);
System.out.println(Integer.toBinaryString(v));
字节a=(字节)240;
字节b=(字节)128;
字节c=15;
intv=IntStream.of(0xFF,b,c,d).map(by->by&0xFF).reduce(0,
(r,s)->(r试试这个:intb=(0xFFreplace^
为|
。我正在尝试XOR。试试这个intb=(0xFF如果您解释了为什么扩展顶部位,这将是一个更好的答案。我在处理图像时使用该函数,希望避免使用该函数,因为该函数对于我的程序来说太慢。图像中的每个像素都是一个整数,并且在该整数中存储ARGB
信息,如aaaaaaaaaa rrrrrrrrrrggggggbbbbbbbbb
,以及在我的程序中,我需要R=G=B,A=255
byte a = (byte)240;
byte b = (byte)128;
byte c = 15;
int v = IntStream.of(0xFF, b, c, d).map(by-> by & 0xFF).reduce(0,
(r, s) -> (r << 8) | s);
System.out.println(Integer.toBinaryString(v));