在Mathematica中获取整数的十六进制表示形式

时间:2011-04-12 15:27:26

标签: wolfram-mathematica

在Mathematica中是否有内置方式将正整数的十六进制表示形式作为字符串(使用字母表中的字母作为高位数)?目前我使用自己的实现

toHexString[n_Integer] := 
 StringJoin[
  ToString /@ 
   (IntegerDigits[n, 16] /. Thread[Range[10, 15] -> CharacterRange["A", "F"]])
 ]

1 个答案:

答案 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"}
相关问题