使用&和||将字节转换为Java中的整数>

问题描述 投票:1回答:2

我需要使用&|从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 ...

java byte data-conversion
2个回答
1
投票

发生这种情况是因为当您移动a时,前面留有1


1
投票

尝试一下。它基本上是左移,和,或,或运算。

© www.soinside.com 2019 - 2024. All rights reserved.