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; | ||||
|     for (c = 0; bits; c++) | ||||
|         bits &= bits -1; | ||||
|         bits &= bits - 1; | ||||
|     return c; | ||||
| /*
 | ||||
|     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
 | ||||
| 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 | ||||
| #define UTIL_H 1 | ||||
| #define UTIL_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 bitpop16(uint16_t bits); | ||||
| uint8_t biton(uint8_t bits); | ||||
| 
 | ||||
| #endif | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user