luaは、数値のバイナリ形式のビットの値を設定して取得します.

431 ワード

--                 ,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