This is an old revision of the document!


Table of Contents

Bitwise operations

Bitwise operations library contains a set of macro functions to do common bit manipulation operations. They are used by the rest of the library and they can be used everythere else. As the macro functions have no type, they are compatible with any data type.

Bit index is used to specify the bit in the binary number. Indexes are counted from zero, where zero represents the least significant bit (LSB). For example, 8-bit number have 8 bits with indexes from 0 to 7 and 16-bit number have 16 bits with indexes from 0 to 15.

Funktsioonid

  • bit_mask(bit)

Bit index to bit mask converting. Parameters:

  • bit - Bit index.
  • Returns bit mask.
  • bit_set(value, bit)

Sets a specified bit in the variable. Parameters:

  • value - Variable.
  • bit - Bit index.
  • bit_clear(value, bit)

Clears a specified bit in the variable. Parameters:

  • value - Variable.
  • bit - Bit index.
  • bit_set_to(value, bit, state)

Set a specified bit in the variable to desired state. Parameters:

  • value - Variable.
  • bit - Bit index.
  • state - State (true or false).
  • bit_invert(value, bit)

Inverts a specified bit in the variable. Parameters:

  • value - Variable.
  • bit - Bit index.
  • bit_is_set(value, bit)

Checks whether a specified bit in the variable is set or not. Parameters:

  • value - Variable.
  • bit - Bit index.
  • Returns boolean value true when bit is set and false when bit is cleared.
  • bit_is_clear(value, bit)

Checks whether a specified bit in the variable is cleared or not. Parameters:

  • value - Variable.
  • bit - Bit index.
  • Returns boolean value true when bit is cleared and false when bit is set.

Example

Setting up a third bit in the 8-bit variable b and inverting of the last one.

#include <homelab/bit.h>
 
int main(void)
{
	unsigned char b = 0x00;
 
	bit_set(b, 2);
	bit_invert(b, 7);
}
en/software/homelab/library/bit.1268044749.txt.gz · Last modified: 2020/07/20 09:00 (external edit)
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0