--- 获取某个数的二进制表示的 第n位  最低位是 1
---@param input number 二进制
---@param n number 第n位
---@return number 返回 1 或者 0 
function MathUtils:get_bit_by_position( input, n )
    local output = input
    output = output / ( 2 ^ ( n -1 ) ) -- 先去掉该位置后面的数
    output = math.floor( output )      -- 取整
    output = output % 2                -- 取最后一位
    return output
end
---十进制转为二进制
---@param number number 要转的数字
---@return number 二进制
function MathUtils:decimalism_change_two( number )
    local bit_t = {}
    local num = number
    if num < 0 then
        return 
    end
    if num < 2 then
        local bit = math.floor( num )
        table.insert( bit_t ,bit )
        return bit_t
    end
    
    while( num > 1) do
        local bit = num % 2
        num  = num / 2
        num = math.floor( num )
        table.insert( bit_t ,bit )
        if num <=1 then
            table.insert( bit_t ,num )
        end
    end
    return bit_t
end

 

posted on 2020-09-10 15:29  DMC-尼禄  阅读(311)  评论(0编辑  收藏  举报