在Mathematica中是否有内置方式将正整数的十六进制表示形式作为字符串(使用字母表中的字母作为高位数)?目前我使用自己的实现
toHexString[n_Integer] :=
StringJoin[
ToString /@
(IntegerDigits[n, 16] /. Thread[Range[10, 15] -> CharacterRange["A", "F"]])
]
答案 0 :(得分:17)
In[254]:= IntegerString[{16, 34, 110, 5676767}, 16]
Out[254]= {"10", "22", "6e", "569edf"}
或者,如果您不喜欢结果中的标准小写字符:
In[255]:= ToUpperCase[IntegerString[{16, 34, 110, 5676767}, 16]]
Out[255]= {"10", "22", "6E", "569EDF"}
请注意,IntegerString有一个可选的第三个参数,它非常有助于生成一系列文件名,这些文件名按字母顺序排序时按正确顺序排序:
In[256]:= Table["filename" <> IntegerString[i, 10, 4] <> ".jpg", {i, 1, 7}]
Out[256]= {"filename0001.jpg", "filename0002.jpg",
"filename0003.jpg", "filename0004.jpg", "filename0005.jpg",
"filename0006.jpg", "filename0007.jpg"}