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 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user