Разобрать целое число от основания 10 до основания 16 в белке
Как мне сделать преобразование целых чисел от 10 до 16 в Squirrel? В Javascript я могу сделать это с: parseInt("ff", 16)
,
Я пытаюсь сделать код цвета HEX для калькулятора RGB для электрического беса. #ffaacc
будет разделен на 3 части (ff
, aa
а также cc
). Затем я вычислил бы их до 10 целых чисел и достиг бы RGB(255, 170, 204). Эти цифры я буду использовать для управления RGB-светодиодом с ШИМ.
2 ответа
Решение
Вот один из подходов, использующих array.find (и формат для обращения):
local lookup = ['0','1','2','3','4','5','6','7','8','9',
'a','b','c','d','e','f']
local hex = "7f"
local dec = lookup.find(hex[0]) * 0x10 + lookup.find(hex[1])
server.log(format("%s -> %d -> %02x", hex, dec, dec))
Попробуйте использовать функцию String tointeger().
local s = "ff";
print (s.tointeger(16));
Если вы хотите конвертировать наоборот, попробуйте функцию format().
local i = 255;
print (format("%x", i));