2021-04-17: y_cell
This is a library for fast bit-manipulation of cells:
Reverse all the bits in a cell:
Example: 0b11110000000000000000000000000000 Becomes: 0b00000000000000000000000000001111
Example: 0b10110011100011110000111110000010 Becomes: 0b01000001111100001111000111001101
Example: 0b01010101010101010101010101010101 Becomes: 0b10101010101010101010101010101010
Reverse all the nibbles in a cell:
Example: 0x12345678 Becomes: 0x87654321
Example: 0x010F0703 Becomes: 0x3070F010
Example: 0xF0F0F0F0 Becomes: 0x0F0F0F0F
Reverse all the bytes in a cell:
Example: 0x12345678 Becomes: 0x78563412
Example: 0x01020304 Becomes: 0x04030201
Example: 0xFF00FF00 Becomes: 0x00FF00FF
Count all the 1s in a cell.
Example: 0 Returns: 0
Example: 1 Returns: 1
Example: 0x01010101 Returns: 4
Returns a number between 0 and 31, representing the least significant set bit in a cell:
Example: 0b00000000000000000000000000000001 Returns: 0
Example: 0b00000000000000000000000000001000 Returns: 3
Example: 0b00010001100011000011100010001000 Returns: 3
WARNING: This function returns 0 if there are no bits set AND if the lowest bit is 1
Returns the lowest set bit in a cell:
Example: 0b00000000000000000000000000000001 Returns: 0b00000000000000000000000000000001
Example: 0b00000000000000000000000000001000 Returns: 0b00000000000000000000000000001000
Example: 0b00010001100011000011100010001000 Returns: 0b00000000000000000000000000001000
This is a library for fast bit-manipulation of cells:
Quote:
Cell_ReverseBits(cell);
Reverse all the bits in a cell:
Example: 0b11110000000000000000000000000000 Becomes: 0b00000000000000000000000000001111
Example: 0b10110011100011110000111110000010 Becomes: 0b01000001111100001111000111001101
Example: 0b01010101010101010101010101010101 Becomes: 0b10101010101010101010101010101010
Quote:
Cell_ReverseNibbles(cell);
Reverse all the nibbles in a cell:
Example: 0x12345678 Becomes: 0x87654321
Example: 0x010F0703 Becomes: 0x3070F010
Example: 0xF0F0F0F0 Becomes: 0x0F0F0F0F
Quote:
Cell_ReverseBytes(cell);
Reverse all the bytes in a cell:
Example: 0x12345678 Becomes: 0x78563412
Example: 0x01020304 Becomes: 0x04030201
Example: 0xFF00FF00 Becomes: 0x00FF00FF
Quote:
Cell_CountBits(cell);
Count all the 1s in a cell.
Example: 0 Returns: 0
Example: 1 Returns: 1
Example: 0x01010101 Returns: 4
Quote:
Cell_GetLowestBit(cell);
Returns a number between 0 and 31, representing the least significant set bit in a cell:
Example: 0b00000000000000000000000000000001 Returns: 0
Example: 0b00000000000000000000000000001000 Returns: 3
Example: 0b00010001100011000011100010001000 Returns: 3
WARNING: This function returns 0 if there are no bits set AND if the lowest bit is 1
Quote:
Cell_GetLowestComponent(cell);
Returns the lowest set bit in a cell:
Example: 0b00000000000000000000000000000001 Returns: 0b00000000000000000000000000000001
Example: 0b00000000000000000000000000001000 Returns: 0b00000000000000000000000000001000
Example: 0b00010001100011000011100010001000 Returns: 0b00000000000000000000000000001000