四个字节转无符号整型java,从2或4个字节转换为有符号/无符号short / int
时间: 2024-01-15 21:05:50 浏览: 137
四个字节转无符号整型的Java代码如下:
```java
public static long bytesToUnsignedInt(byte[] bytes) {
long value = 0;
for (int i = 0; i < 4; i++) {
value += ((long) bytes[i] & 0xffL) << (8 * i);
}
return value;
}
```
其中,bytes 是一个长度为 4 的字节数组,表示要转换的无符号整数的四个字节。这个方法会将这四个字节按照小端字节序(即低地址存放低位字节)组合成一个无符号整数并返回。
如果要将两个字节转换为有符号 short 或无符号 short,可以使用下面的代码:
```java
public static short bytesToShort(byte[] bytes, boolean signed) {
short value = 0;
for (int i = 0; i < 2; i++) {
value += ((short) bytes[i] & 0xffL) << (8 * i);
}
if (signed) {
return value;
} else {
return (short) (value & 0xffffL);
}
}
```
其中,bytes 是一个长度为 2 的字节数组,signed 参数表示是否将结果转换为有符号 short。如果 signed 为 true,则返回有符号 short;否则返回无符号 short。
如果要将四个字节转换为有符号 int 或无符号 int,可以使用下面的代码:
```java
public static int bytesToInt(byte[] bytes, boolean signed) {
int value = 0;
for (int i = 0; i < 4; i++) {
value += ((int) bytes[i] & 0xffL) << (8 * i);
}
if (signed) {
return value;
} else {
return (int) (value & 0xffffffffL);
}
}
```
其中,bytes 是一个长度为 4 的字节数组,signed 参数表示是否将结果转换为有符号 int。如果 signed 为 true,则返回有符号 int;否则返回无符号 int。
阅读全文