将整数转换为十六进制->Java中的LittleEndian格式

w9apscun  于 2023-01-07  发布在  Java
关注(0)|答案(2)|浏览(132)

我试图为我的代码获取十六进制(Java)的小端格式值,但是在第一位得到了fffff,并且没有得到类似于这个站点返回的值:https://www.rapidtables.com/convert/number/decimal-to-hex.html
下面是代码:

private static void convertToHex() {

    String hextestValue = Integer.toHexString(1234);
    int value = Integer.parseInt(hextestValue, 16);
    ByteBuffer bb = ByteBuffer.allocate(4);
    bb.order(ByteOrder.LITTLE_ENDIAN);
    bb.putInt(value);
    System.out.print("x = ");
    for (byte b : bb.array()) {
        System.out.printf("%2s", Integer.toHexString(b) + " ");
    }

}

不确定需要做些什么才能以类似的格式返回结果。
例如,对于输入1234,我需要输出:第二天04

l7mqbcuq

l7mqbcuq1#

第一个月
才是你需要的

o8x7eapl

o8x7eapl2#

除了@g00se的另一个答案之外,
值得注意的是,在java中,int占用4个字节,因此在示例中必须分配4个字节。
但是,short只有2个字节。

ByteBuffer bb = ByteBuffer.allocate(2);
bb.order(ByteOrder.LITTLE_ENDIAN);
bb.putShort((short)value);

这将去掉不必要的字节。

相关问题