我正在执行一个返回长十进制的计算,例如 4611686018427387904。我需要首先将其转换为十六进制,然后根据设置的位检查大小为 (16) 的数组。
所以上面的数字被转换为 0x40000000000000000L,这对应于数组中的第一个索引。如果数字为 0x0004000000000000L,则它对应于数组中的第三个索引。
我的问题是:
- 有没有快速将十进制转换为十六进制的方法?
- 是否有一种根据值的位集快速访问数组的方法(而不是使用循环)?
最佳答案
如果数字在长范围内,请使用 Long.highestOneBit() 。或者,BigInteger 有 bitLength()方法。
关于Java快速访问数组项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15396293/