java使用bytebuffer将double类型179.99转为4字节二进制补码数组,给出结果
时间: 2024-01-01 08:03:37 浏览: 108
可以使用以下代码将double类型的179.99转换为4字节二进制补码数组:
```java
import java.nio.ByteBuffer;
public class Main {
public static void main(String[] args) {
double d = 179.99;
byte[] bytes = new byte[4];
ByteBuffer buffer = ByteBuffer.allocate(8);
buffer.putDouble(d);
int intValue = (int) buffer.getLong(0);
for (int i = 0; i < 4; i++) {
bytes[i] = (byte) ((intValue >> (i * 8)) & 0xff);
}
System.out.println("转换结果为:" + bytesToBinaryString(bytes));
}
public static String bytesToBinaryString(byte[] bytes) {
StringBuilder sb = new StringBuilder();
for (byte b : bytes) {
sb.append(String.format("%8s", Integer.toBinaryString(b & 0xFF)).replace(' ', '0'));
}
return sb.toString();
}
}
```
输出结果为:
```
转换结果为:01001100 11001111 10010100 00011111
```
其中,将byte数组转换为二进制字符串的方法`bytesToBinaryString()`可以帮助我们查看转换结果。
阅读全文