Lua: print integer as a binary

前端 未结 7 1873
遇见更好的自我
遇见更好的自我 2020-12-31 07:11

How can I represent integer as Binary?

so I can print 7 as 111

相关标签:
7条回答
  • 2020-12-31 07:38
    local function tobinary( number )
      local str = ""
      if number == 0 then
          return 0
      elseif number < 0 then
          number = - number
          str = "-"
      end
      local power = 0
      while true do
          if 2^power > number then break end
          power = power + 1
      end
      local dot = true
      while true do
          power = power - 1
          if dot and power < 0 then
              str = str .. "."
              dot = false
          end
          if 2^power <= number then
              number = number - 2^power
              str = str .. "1"
          else
              str = str .. "0"
          end
          if number == 0 and power < 1 then break end
      end
      return str
    end
    

    May seem more verbose but it is actually faster than other functions that use the math library functions. Works with any number, be it positive/negative/fractional...

    0 讨论(0)
提交回复
热议问题