Lua中的bit操作

在开发过程中偶然一次用到了位操作,分享一下

事情经过是这样的服务器那边想通过发送一个奖励的掩码让我这边自己判断奖励的领取情况,什么,掩码?这就有点懵逼了,果断上网查些资料

https://www.cnblogs.com/jadeboy/p/4038332.html

说白了就是十进制转化为二进制进行相关操作,我这边就是直接运用了自带的库

例如发过来的掩码为25,五种档次的领奖情况为11001

local bit = require "bit"
local AwardNum = 5
local TheAwardList = {}
for i = 1, AwardNum do
    if bit.band(1, bit.rshift(rsp.AwardMask, i - 1)) > 0 then
            TheAwardList[i] = 1
    else
        TheAwardList[i] = 0
    end
end
•bit.bnot(a) - 返回一个a的补充 
•bit.band(w1,...) - 返回w的位与 
•bit.bor(w1,...) - 返回w的位或 
•bit.bxor(w1,...) - 返回w的位异或 
•bit.lshift(a,b) - 返回a向左偏移到b位 
•bit.rshift(a,b) - 返回a逻辑右偏移到b位 
•bit.arshift(a,b) - 返回a算术偏移到b位 
•bit.mod(a,b) - 返回a除以b的整数余数 

仅是使用未得位运算精髓,有误请指正

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值