我们可以在java中读取与不同数据类型相同的字节序列吗?我想知道这是否可能。目的是演示内存中不同数据类型的表示,特别是Java。
答案 0 :(得分:3)
您可以使用以下方法将double
转换为long
来保留其二进制表示(而不是值):doubleToLongBits()
,doubleToRawLongBits()
和{{1} }。
你也可以像这样使用ByteBuffer:
longBitsToDouble()
输出:
import java.nio.ByteBuffer;
public class ByteShow {
public static void showBytes(ByteBuffer bb) {
byte[] bytes = bb.array();
for (byte b : bytes) {
System.out.format("0x02%x ", b);
}
System.out.println();
}
public static void main(String[] args) {
showBytes(ByteBuffer.allocate(4).putInt(0x12345678));
showBytes(ByteBuffer.allocate(8).putDouble(Math.PI))
showBytes(ByteBuffer.allocate(2).putChar('@'));
}
}
另见post。
答案 1 :(得分:0)
您可以在Union;)
中使用Javolution类型