bitfuncs.c
Raw
1#include <cutils/bitfuncs.h>
2
3char* _bitstring(size_t size, uintmax_t value)
4{
5 char* ret = NULL;
6 size_t i, pos;
7
8 bool leading_zero = true;
9 for(i = 1, pos = 0; i <= size; i++)
10 {
11 byte tmp = (byte)((value & ((uintmax_t)1 << (size-i))) >> (size-i));
12 if(tmp && leading_zero)
13 {
14 leading_zero = false;
15 ret = malloc(size-i);
16 ret[size-i-1] = '\0';
17 }
18 if(!leading_zero)
19 ret[pos++] = tmp ? '1' : '0';
20 }
21 return ret;
22}
23