gpt4 book ai didi

java - 将相同的位序列解释为不同的数据类型

转载 作者:行者123 更新时间:2023-11-29 06:07:40 25 4
gpt4 key购买 nike

我们可以在 java 中读取相同的字节序列作为不同的数据类型吗?我想知道这是否可能。目的是演示内存中不同数据类型的表示,特别是 Java。

最佳答案

您可以使用以下方法将 double 转换为 long 并保留其二进制表示形式(而不是值):doubleToLongBits() , doubleToRawLongBits()longBitsToDouble()

您也可以像这样使用 ByteBuffer:

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('@'));
}
}

哪些输出:

0x12 0x34 0x56 0x78 
0x40 0x09 0x21 0xfb 0x54 0x44 0x2d 0x18
0x00 0x40

另见 post

关于java - 将相同的位序列解释为不同的数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8042344/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com