nodemcu-firmware/docs/en/modules/bit.md

3.3 KiB

bit Module

Bit manipulation support, on 32bit integers.

bit.bnot()

Bitwise negation, equivalent to ~value in C.

####Syntax bit.bnot(value)

####Parameters value: the number to negate.

####Returns number: the bitwise negated value of the number.


bit.band()

Bitwise AND, equivalent to val1 & val2 & ... & valn in C.

####Syntax bit.band(val1, val2 [, ... valn])

####Parameters

  • val1: first AND argument.
  • val2: second AND argument.
  • ...valn: ...nth AND argument.

####Returns number: the bitwise AND of all the arguments.


bit.bor()

Bitwise OR, equivalent to val1 | val2 | ... | valn in C.

####Syntax bit.bor(val1, val2 [, ... valn])

####Parameters

  • val1: first OR argument.
  • val2: second OR argument.
  • ...valn: ...nth OR argument.

####Returns number: the bitwise OR of all the arguments.


bit.bxor()

Bitwise XOR, equivalent to val1 ^ val2 ^ ... ^ valn in C.

####Syntax bit.bxor(val1, val2 [, ... valn])

####Parameters

  • val1: first XOR argument.
  • val2: second XOR argument.
  • ...valn: ...nth XOR argument.

####Returns number: the bitwise XOR of all the arguments.


bit.lshift()

Left-shift a number, equivalent to value << shift in C.

####Syntax bit.lshift(value, shift)

####Parameters

  • value: the value to shift.
  • shift: positions to shift.

####Returns number: the number shifted left


bit.rshift()

Logical right shift a number, equivalent to ( unsigned )value >> shift in C.

####Syntax bit.rshift(value, shift)

####Parameters

  • value: the value to shift.
  • shift: positions to shift.

####Returns number: the number shifted right (logically).


bit.arshift()

Arithmetic right shift a number equivalent to value >> shift in C.

####Syntax bit.arshift(value, shift)

####Parameters

  • value: the value to shift.
  • shift: positions to shift.

####Returns number: the number shifted right (arithmetically).


bit.bit()

Generate a number with a 1 bit (used for mask generation). Equivalent to 1 << position in C.

####Syntax bit.bit(position)

####Parameters

  • position: position of the bit that will be set to 1.

####Returns number: a number with only one 1 bit at position (the rest are set to 0).


bit.set()

Set bits in a number.

####Syntax bit.set(value, pos1 [, ... posn ])

####Parameters

  • value: the base number.
  • pos1: position of the first bit to set.
  • ...posn: position of the nth bit to set.

####Returns number: the number with the bit(s) set in the given position(s).


bit.clear()

Clear bits in a number.

####Syntax bit.clear(value, pos1 [, ... posn])

####Parameters

  • value: the base number.
  • pos1: position of the first bit to clear.
  • ...posn: position of thet nth bit to clear.

####Returns number: the number with the bit(s) cleared in the given position(s).


bit.isset()

Test if a given bit is set.

####Syntax bit.isset(value, position)

####Parameters

  • value: the value to test.
  • position: bit position to test.

####Returns boolean: true if the bit at the given position is 1, false otherwise.


bit.isclear()

Test if a given bit is cleared.

####Syntax bit.isclear(value, position)

####Parameters

  • value: the value to test.
  • position: bit position to test.

####Returns boolean: true if the bit at the given position is 0, false othewise.