Advertisement
Snowsz

Flipping Bits

Feb 11th, 2015
215
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.18 KB | None | 0 0
  1. function integerToBits(n) -- function que transforma um inteiro em binario, a mesma usada em PI apenas traduzida pra lua
  2. table = {}
  3.  for i = 32, 1, -1 do -- 32 porque é o numero de bits que eu vou pegar
  4.   r = n % 2
  5.   table[i] = r
  6.   n = (n - r) /2
  7.  end
  8.  if n == 0 then
  9.   return table
  10.  else
  11.   print("Não foi possivel transformar esse inteiro em um numero de 32 bits")
  12.   return false
  13.  end
  14. end
  15.  
  16. local escolhido = 1
  17. escolhido = tostring(escolhido)
  18. local blanktxt = ''
  19. for i = 1,32 do
  20. blanktxt = blanktxt..integerToBits(escolhido)[i]
  21. end
  22.  
  23.  
  24.  
  25. local newtxt = "" -- cria uma string vazia
  26.    for j = 1, string.len(blanktxt) do -- um for pra pegar cada elemento da string em binario
  27.     local c = blanktxt:sub(j,j) -- c eh o elemento iterado da string
  28.     if c == "1" then -- se o elemento for 1 passa pra 0 e vice versa
  29.      c = "0"
  30.     else
  31.      c = "1"
  32.     end  
  33.     newtxt = newtxt..c -- retorna o texto como sendo ele + a string c    
  34.    end
  35. print("Numero escolhido: "..escolhido.."\n Escolhido binário: "..blanktxt.."\n Escolhido binário invertido: "..newtxt.."\n Escolhido invertido: "..tonumber(newtxt, 2).."\n Resultado: "..escolhido.." virou "..tonumber(newtxt, 2))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement