在Mathematica中将整数转换为十六进制字符串的表示形式

8

在Mathematica中,是否有一种内置的方法可以将正整数转换为十六进制字符串(使用字母作为更高位数)?目前我使用自己的实现方式:

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

18
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"}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接