bit¶
作者:吴永 更新时间:2020年8月14日 关键字:位操作,bit
bit.bit()¶
左移运算,等价于C语言中的1 << position
- 语法 - number = bit.bit( position )
- 参数 - 参数 - 释义 - position - 需要移位的位置 
- 返回值 - 移位运算后的值 
- 例子 
print(bit.bit(2))--参数是位数,作用是1向左移动两位,打印出4
bit.isset()¶
测试位数是否被置1
- 语法 - flag = bit.isset( value, position )
- 参数 - 参数 - 释义 - value - 被测试的值 - position - 被测试的位置 
- 返回值 - true:该位被置1 - false:其他 
- 例子 
print(bit.isset(5,0))--第一个参数是是测试数字,第二个是测试位置。从右向左数0到7。是1返回true,否则返回false,该返回true
print(bit.isset(5,1))--打印false
print(bit.isset(5,2))--打印true
print(bit.isset(5,3))--返回返回false
bit.isclear()¶
测试位数是否被置0
- 语法 - flag = bit.isclear( value, position )
- 参数 - 参数 - 释义 - value - 被测试的值 - position - 被测试的位置 
- 返回值 - true:该位被置0 - false:其他 
- 例子 
print(bit.isclear(5,0))--与上面的相反
print(bit.isclear(5,1))
print(bit.isclear(5,2))
print(bit.isclear(5,3))
bit.set()¶
置1
- 语法 - number = bit.set( value, pos1, pos2, ..., posn )
- 参数 - 参数 - 释义 - value - 基数(需要改变的值) - pos1 - 第一位置 - pos2 - 第二位置 - posn - 第n位置 
- 返回值 - 置1之后的值 
- 例子 
print(bit.set(0,0,1,2,3))--在相应的位数置1,打印15
bit.clear()¶
置0
- 语法 - number = bit.clear( value, pos1, pos2, ..., posn )
- 参数 - 参数 - 释义 - value - 基数(需要改变的值) - pos1 - 第一位置 - pos2 - 第二位置 - posn - 第n位置 
- 返回值 - 置0之后的值 
- 例子 
print(bit.clear(5,0,2)) --在相应的位置置0,打印0
bit.bnot()¶
取反,等价于C语言中的~
- 语法 - number = bit.bnot( value )
- 参数 - 参数 - 释义 - value - 需要取反的值 
- 返回值 - 取反之后的值 
- 例子 
print(bit.bnot(5))--按位取反,输出-6
bit.band()¶
与运算,等价于C语言中的val1 & val2 & … & valn
- 语法 - number = bit.band( val1, val2, ... valn )
- 参数 - 参数 - 释义 - val1 - 第一个参数 - val2 - 第二个参数 - valn - 第n个参数 
- 返回值 - 与运算之后的结果 
- 例子 
print(bit.band(1,1))--与,--输出1
bit.bor()¶
或运算,等价于C里面的val1 | val2 | … | valn
- 语法 - number = bit.bor( val1, val2, ... valn )
- 参数 - 参数 - 释义 - val1 - 第一个参数 - val2 - 第二个参数 - valn - 第n个参数 
- 返回值 - 或运算之后的结果 
- 例子 
print(bit.bor(1,2))--或,--输出3
bit.bxor()¶
异或运算,等价于C语言中的val1 ^ val2 ^ … ^ valn
- 语法 - number = bit.bxor( val1, val2, ... valn )
- 参数 - 参数 - 释义 - val1 - 第一个参数 - val2 - 第二个参数 - valn - 第n个参数 
- 返回值 - 异或运算之后的结果 
- 例子 
print(bit.bxor(1,2))--异或,相同为0,不同为1
bit.lshift()¶
逻辑左移,等价于C语言中的value << shift
- 语法 - number = bit.lshift( value, shift )
- 参数 - 参数 - 释义 - value - 移位的值 - shift - 移位的位置 
- 返回值 - 逻辑左移之后的结果 
- 例子 
print(bit.lshift(1,2))--逻辑左移,“100”,输出为4
bit.rshift()¶
逻辑右移,等价于C语言中的value >> shift
- 语法 - number = bit.rshift( value, shift )
- 参数 - 参数 - 释义 - value - 移位的值 - shift - 移位的位置 
- 返回值 - 逻辑右移之后的结果 
- 例子 
print(bit.rshift(4,2))--逻辑右移,“001”,输出为1
bit.arshift()¶
算数右移
- 语法 - number = bit.arshift( value, shift )
- 参数 - 参数 - 释义 - value - 移位的值 - shift - 移位的位置 
- 返回值 - 算术右移之后的结果 
- 例子 
print(bit.arshift(2,2))--算数右移,左边添加的数与符号有关,输出为0