使用 Groovy 生成十六进制值
Generate Hexadecimal value using Groovy
我正在尝试使用 Groovy 生成十六进制值,但有时它会生成不正确的十六进制值。
Groovy代码:
def randomuserserial = Long.toUnsignedString(new Random().nextLong(), 16).toUpperCase()
log.info randomuserserial
例如:它生成 'C9786B0146A68638' 并且当我转换为十进制错误时显示 'Hex number must be smaller then 7fffffffffffffff'
但是这个转换器只接受小于 7fffffffffffffff
的十六进制数
表示它只接受正十进制数或零
在转换为十六进制字符串之前,您可以使用 abs() 方法将负数转换为正数
Long.toUnsignedString(new Random().nextLong().abs(), 16).toUpperCase()
另一方面,java/groovy 中的十六进制解析器可以解析比 7fffffffffffffff
更大的数字:
def s='C9786B0146A68638'
def i = Long.parseUnsignedLong(s, 16)
println i
我正在尝试使用 Groovy 生成十六进制值,但有时它会生成不正确的十六进制值。
Groovy代码:
def randomuserserial = Long.toUnsignedString(new Random().nextLong(), 16).toUpperCase()
log.info randomuserserial
例如:它生成 'C9786B0146A68638' 并且当我转换为十进制错误时显示 'Hex number must be smaller then 7fffffffffffffff'
但是这个转换器只接受小于 7fffffffffffffff
表示它只接受正十进制数或零
在转换为十六进制字符串之前,您可以使用 abs() 方法将负数转换为正数
Long.toUnsignedString(new Random().nextLong().abs(), 16).toUpperCase()
另一方面,java/groovy 中的十六进制解析器可以解析比 7fffffffffffffff
更大的数字:
def s='C9786B0146A68638'
def i = Long.parseUnsignedLong(s, 16)
println i