scala到十六进制字符串中的Long/Int
使用scala到十六进制字符串中的Long/Int,scala,hex,long-integer,Scala,Hex,Long Integer,使用Integer.toString(1234567,16).toUpperCase()//输出:12D68可以帮助将Int转换为十六进制字符串 如何在长时间内实现同样的效果 Long.toString(13690566117625,16).toUpperCase()//但这将报告错误您要查找的: 和大写变体: scala> 13690566117625L.toHexString.toUpperCase res1: String = C73955488F9 编辑 这也可通过以下方式用于I
Integer.toString(1234567,16).toUpperCase()//输出:12D68
可以帮助将Int
转换为十六进制字符串
如何在长时间内实现同样的效果
Long.toString(13690566117625,16).toUpperCase()//但这将报告错误
您要查找的:
和大写变体:
scala> 13690566117625L.toHexString.toUpperCase
res1: String = C73955488F9
编辑
这也可通过以下方式用于Int
:
你有几个错误。首先,数字
13690566117625
太大,无法放入int
中,因此需要添加L
前缀以指示它是长的
文本。其次,Long
没有采用基数的toString
方法(与Integer
不同)
解决方案:
val x = 13690566117625L
x.toHexString.toUpperCase
使用%X
获取大写十六进制字母,如果需要小写字母,则使用%X
。我发现f“0x$int\u val%08X”
或f“0x$long\u val%16X”
在将值与前导零对齐时效果非常好
scala> val i = 1
i: Int = 1
scala> f"0x$i%08X"
res1: String = 0x00000001
scala> val i = -1
i: Int = -1
scala> f"0x$i%08X"
res2: String = 0xFFFFFFFF
scala> val i = -1L
i: Long = -1
scala> f"0x$i%16X"
res3: String = 0xFFFFFFFFFFFFFFFF
你犯了什么错误?如果您使用“
13690566117625L
”并在末尾加上一个L会怎么样?@kennytm,Long.toString(13690566117625L,16).toUpperCase()
,它会说错误:方法toString:()字符串的参数太多了。
您也可以这样做填充,例如用零填充到16的长度:f“$bigNum%016X”
确实可以。您还可以将标准十六进制名称添加到格式化输出:f“$myNum%#x”
结果为0x1c4
。以多种不同十六进制格式表示值的简明方法。
val x = 13690566117625L
x.toHexString.toUpperCase
val bigNum: Long = 13690566117625L
val bigHex: String = f"$bigNum%X"
scala> val i = 1
i: Int = 1
scala> f"0x$i%08X"
res1: String = 0x00000001
scala> val i = -1
i: Int = -1
scala> f"0x$i%08X"
res2: String = 0xFFFFFFFF
scala> val i = -1L
i: Long = -1
scala> f"0x$i%16X"
res3: String = 0xFFFFFFFFFFFFFFFF