Получить шестнадцатеричное представление целого числа в виде строки в Mathematica - PullRequest
7 голосов
/ 12 апреля 2011

Есть ли в Mathematica встроенный способ *1001* для получения шестнадцатеричного представления положительного целого числа в виде строки (используя буквы алфавита в качестве старших цифр)?В настоящее время я использую свою собственную реализацию как

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

1 Ответ

17 голосов
/ 12 апреля 2011
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"}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...