lua设置和获取一个数字的二进制形式的某个位的值

-- 获取数字的二进制形式的某个位的值,index从1开始
function GetBitByIndex(num, index)
    local b = bit32.lshift(1, (index -1))
    return bit32.band(num, b)
end

-- 设置数字某个位的值,index从1开始,v: 0或1
function SetBitByIndex(num, index, v)
    local b = bit32.lshift(1, (index - 1))
    if v > 0 then
        num = bit32.bor(num, b)
    else
        b = bit32.bnot(b)
        num = bit32.band(num, b)
    end
    return num
end

 

你可能感兴趣的:(lua)