Дополнение шестнадцатеричной строки нулями до 6 символов - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть это:

function dec2hex(IN)
  local OUT
  OUT = string.format("%x",IN)
  return OUT
end

и мне нужно IN, чтобы заполнить нули до длины строки 6.

Я не могу использовать String.Utils или PadLeft.Он находится внутри приложения под названием Watchmaker, которое использует урезанную версию Lua.

Ответы [ 2 ]

0 голосов

Если вы храните строку формата локально, вы можете вызвать метод форматирования для строки формата, и пример @Henri приводит к ("%06x"):format(0xffff)

print(("%06x"):format(0xffff)) -- Prints `00ffff`

Вы можете писать числа в hexформат .Это так же, как C.

0 голосов
/ 26 сентября 2018

Строковые форматы в Lua работают в основном так же, как в C. Поэтому, чтобы заполнить число нулями, просто используйте %0n, где n - количество мест.Например,

print(string.format("%06x", 16^4-1))

напечатает 00ffff.

См. Главу 20 Библиотека строк «Программирование на Lua», ссылка string.format и ссылка C на printf семейство функций для получения подробной информации.

...