我需要使用&
和|
从1字节转换为整数。转换后的输出必须是具有以下字节的整数:(0xFF)(字节)(字节)(字节)。
例如:输入:
00000111
输出:
11111111000001110000011100000111
如果字节在
[0, 127]
范围内,我的代码将起作用
int integer=7; byte a=(byte)integer; int b=(0xFF<<24)|(a<<16)|(a<<8)|(a); System.out.println(Integer.toBinaryString(b));
如果该字节在
[-128, -1]
范围内,则不起作用
输入:
10000000
错误的输出:
11111111111111111111111110000000
预期输出:
11111111100000001000000010000000
我需要使用&和|将1字节转换为整数。转换后的输出必须是具有以下字节的整数:(0xFF)(字节)(字节)(字节)。例如:输入:00000111 ...
发生这种情况是因为当您移动a
时,前面留有1
。
尝试一下。它基本上是左移,和,或,或运算。