数字图像处理获取某位bit

def getBit(num, bit_idx=8): 
    return (num & (1 << (8 - bit_idx))) >> (8 - bit_idx)

num是图像中某一个字节,num展开的二进制为0bxxxxxxxx , x为0或1

bit_idx默认为8,即 bit的位置 默认为8位

&:按位与操作,只有 1 &1 为1

1 & 0 、 0 & 0 为 0, 可用于进位运算。

假设我要取第五位bit,bit-idx=5:

1 << (8 - 5)    ==>  1 << 3

1 << 3    表示1左移三位,二进制表示为 0b00001000

 然后和num进行与操作,由与操作的理解来说,那就只保留第三位的值

假设num=0b11111111,进行与操作后结果就变成了0b00001000

然后得出的结果又进行移位:>> (8 - bit_idx) ,把结果右移三位 ,   为1

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值