Add bitpop16() in util.c.
This commit is contained in:
parent
83f0e800e5
commit
94b4fba6e6
@ -22,7 +22,7 @@ uint8_t bitpop(uint8_t bits)
|
|||||||
{
|
{
|
||||||
uint8_t c;
|
uint8_t c;
|
||||||
for (c = 0; bits; c++)
|
for (c = 0; bits; c++)
|
||||||
bits &= bits -1;
|
bits &= bits - 1;
|
||||||
return c;
|
return c;
|
||||||
/*
|
/*
|
||||||
const uint8_t bit_count[] = { 0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4 };
|
const uint8_t bit_count[] = { 0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4 };
|
||||||
@ -30,6 +30,14 @@ uint8_t bitpop(uint8_t bits)
|
|||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint8_t bitpop16(uint16_t bits)
|
||||||
|
{
|
||||||
|
uint8_t c;
|
||||||
|
for (c = 0; bits; c++)
|
||||||
|
bits &= bits - 1;
|
||||||
|
return c;
|
||||||
|
}
|
||||||
|
|
||||||
// most significant on-bit - return highest location of on-bit
|
// most significant on-bit - return highest location of on-bit
|
||||||
uint8_t biton(uint8_t bits)
|
uint8_t biton(uint8_t bits)
|
||||||
{
|
{
|
||||||
|
@ -16,7 +16,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef UTIL_H
|
#ifndef UTIL_H
|
||||||
#define UTIL_H 1
|
#define UTIL_H
|
||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
@ -29,6 +29,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
|
|
||||||
|
|
||||||
uint8_t bitpop(uint8_t bits);
|
uint8_t bitpop(uint8_t bits);
|
||||||
|
uint8_t bitpop16(uint16_t bits);
|
||||||
uint8_t biton(uint8_t bits);
|
uint8_t biton(uint8_t bits);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Reference in New Issue
Block a user