Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function ten2_16(n)
- local div
- local mod = {}
- local t16num = { [10] = "A", [11] = "B", [12] = "C", [13] = "D", [14] = "E", [15] = "F" }
- -- Делим
- div = math.floor(n / 16)
- -- Получаем остаток от деления
- local rmod = math.floor(n % 16)
- mod[1] = rmod < 9 and rmod or t16num[rmod]
- -- Если результат деления больше 15 делим еще
- local i = 1
- while div > 15 do
- local _2i = i + 1
- -- Остаток от деления и добавляем букву
- mod[_2i] = math.floor( div % 16 )
- if mod[_2i] > 9 then mod[_2i] = t16num[mod[_2i]] end
- -- Продолжаем делить
- div = math.floor( div / 16 )
- i = _2i
- end
- -- Преобразовываем в тип понимаемый для lua
- local str = "0x"..( div > 9 and t16num[div] or div )
- for i = #mod, 1, -1 do
- str = str..mod[i]
- end
- return str
- end
- n = 123456789101112130
- print( "В 16-ой: "..ten2_16(n) )
- print( "В 10-ой: "..tonumber(ten2_16(n)) )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement