帮我写一下byte[]和int互相转换的java代码
时间: 2024-11-22 14:45:10 浏览: 14
在Java中,`byte[]`和`int`之间的转换主要涉及到字节到整数(`int` to `byte[]`)以及字节数组到整数(`byte[]` to `int`)。以下是简单的代码示例:
1. 将整数转换为字节数组(Integer to byte[]):
```java
public static byte[] intToBytes(int value) {
if (value < 0) {
// 对于负数,需要先将其转换为补码表示再转换为字节数组
value = ~value + 1;
}
byte[] bytes = new byte[4];
for (int i = 0; i < 4; i++) {
bytes[i] = (byte)(value & 0xFF);
value >>= 8;
}
return bytes;
}
// 示例
int num = 123;
byte[] byteArr = intToBytes(num);
```
2. 将字节数组转换为整数(byte[] to int):
```java
public static int bytesToInt(byte[] bytes) {
int result = 0;
for (int i = 0; i < 4 && i < bytes.length; i++) {
result |= (bytes[i] & 0xFF) << (i * 8);
}
return result;
}
// 示例
byte[] byteArr = {0x7B, 0x6F, 0x62, 0x65};
int num = bytesToInt(byteArr);
```
注意:实际应用中,如果输入的字节数少于4个,转换可能会出现问题,因此一般会检查字节数。
阅读全文