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