groovy - 在 Groovy 中将整数转换为十六进制字符串

标签 groovy integer hex tostring

我是 Groovy 的新手。当我想将一些整数转换为十六进制字符串时,我尝试过这样的代码:

theNumber.toString(16)

就像我在 JavaScript 中所做的那样。 (Groovy 就像另一种看起来类似于 Java 的脚本语言,对吧?)

但是上面的代码没有按我的预期工作。当数字很大时,结果是正确的;但大多数情况下,它只返回 16。
println(256.toString(16)) // 16
println(36893488147419103232.toString(16)) // 20000000000000000

我很困惑为什么 Groovy 的行为如此奇怪。有人可以帮我解释一下吗?而且,将整数转换为十六进制字符串的最佳方法是什么?

谢谢。

最佳答案

Java 不是 JavaScript。
Groovy 是为 Java 平台构建的语言。
Java 代码也可以直接与 Groovy 一起使用。所以你可以使用 .toHexString()

Integer.toHexString(256) 
Long.toHexString(28562)

对于大于 long (9223372036854775807) 最大值的数字,可以使用 BigInteger 数据类型。
String bigInt = new BigInteger("36893488147419103232").toString(16);

关于groovy - 在 Groovy 中将整数转换为十六进制字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38649130/

相关文章:

groovy - 如何自定义每个依赖项的目标路径

groovy - 需要帮助理解使用常规闭包的柯里化(Currying)吗?

java - 整数数组(Java)

Objective-C - 比较不按预期工作的整数

javascript - 如何在给定计数器的情况下在 "rainbow order"中生成一系列十六进制代码?

colors - 色轮两侧的十六进制颜色值之间的数学关系是什么?

ruby - 让 RVM 与 Jenkins Pipeline 配合使用

groovy - 在Intellij中配置log4j.properties

python - 将非列表类型直接转换为列表

java - java中的Apache通用编解码器从字符串到十六进制,反之亦然