gpt4 book ai didi

java - ByteBuffer 转 bigdecimal、binary、string

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:18:01 26 4
gpt4 key购买 nike

**请检查本文底部的编辑内容
我有一个字节缓冲区 [128 位] [其中有数字],我需要将其转换为 bigdecimal、二进制、字符串,因为这些是使用 jdbc 时相应的 sql 映射。

是否有我可以用来执行此操作的库 API。我看到 String.valueof() 没有将字节数组作为参数。所以我坚持做这样的事情:

BigDecimal bd = new BigDecimal(bigmyBuffer.asCharBuffer().toString());

这对我来说看起来像是黑客攻击?。有没有更好的方法来做这个或者更确切地说以有效的方式做 jdbc 部分。到目前为止,我专注于在各自的 sql 列中进行插入。

编辑:
我错了,字节缓冲区不仅仅是数字,而是各种位。所以现在我需要使用 128 位字节缓冲区并将其转换为 2 个 long,然后合并为一个 bigdecimal,以便数字保持理智。所以像这样:LongBuffer lbUUID = guid.asLongBuffer();

firstLong=      lbUUID.get();
secondLong = lbUUID.get();

BigDecimal = firstLong + secondLong ;

谢谢。

最佳答案

可能还是绕路比较好BigInteger ?使用 BigInteger,您可以将字节数组解释为正大数,并且从 BigInteger 到 BigDecimal 是非常小的一步:

byte[] data= new byte[] { 0x12, 0x04, 0x07, 0x05, 0x08, 0x11, 0x38, 0x44, 0x77, 0x33};
BigInteger bi =new BigInteger(1,data);
BigDecimal bd = new BigDecimal(bi);

关于java - ByteBuffer 转 bigdecimal、binary、string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4341777/

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