Ir para conteúdo

[Arquivado]2 Funções


joaohd

Posts Recomendados

Eu e MatheusMkalo estamos estudando LUA mais a fundo, com o intuito de desenvolver códigos mais avançados e consequentemente, ampliar nossos conhecimentos na linguagem.

 

Essas duas funções foram desenvolvidas por nós com a finalidade única de estudo. Possivelmente já existem outras e talvez seja até mesmo inútil.

 

Aqui estão elas:

 

 

math.bin:

 

math.bin = function(n)

local num = {}

if type(n) == "number" then
	while math.floor((n / 2)) > 0 do
		table.insert(num,math.floor((n%2)))
		n = math.floor(n / 2)
	end
		table.insert(num, 1)
else
		print("\aBad number to convert.")
end
return string.reverse(tostring(table.concat(num)))
end

 

 

 

math.dec:

 

math.dec = function(n)

local n = string.reverse(tostring(n))

local firstTab = {}
for i in string.gmatch(tostring(n), ".") do
	table.insert(firstTab,i)
end


local secTab = {}
for i,v in ipairs(firstTab) do
	table.insert(secTab, math.pow(2,i)*v)
end

local num = 0

for i = 1, #secTab do
	num = num + secTab[i]
end

return num/2
end

 

Exemplo de uso:

 

math.bin(25) --> Retorna 11001
math.dec(11001) --> Retorna 25

 

 

Para que servem?

math.bin serve para converter números decimais (50,25,30,9,87, ...) em números binários (110010,11001,11110,1001,1010111, ...).

math.dec faz o inverso, converte números binários (110010,11001,11110,1001,1010111, ...) em decimais (50,25,30,9,87, ...).

 

 

Caso achem alguma finalidade, bom uso!

 

 

Créditos : Apocarai & MatheusMkalo

 

 

 

flw

Editado por apocarai
Link para o comentário
Compartilhar em outros sites

Gostei muito mesmo desse trabalho,

Muito interessante como você usou as funções "básicas" para criar um conversor binário-decimal.

 

Acho que quem consegue fazer isto, é porque já sabe muito e tem muita criatividade.

Parabéns aos dois senhores.

Link para o comentário
Compartilhar em outros sites

  • 7 years later...
Visitante
Este tópico está impedido de receber novos posts.
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...