36 for (byte = 0; byte < nbits / 8; byte++)
38 for (bit = 0; bit < 8; bit++)
40 if ((mem[byte] & (((
char) 1) << bit)) != 0)
53 for (i = 0; i < 8; i++)
55 if ((x & (((UINT8) 1) << i)) != 0)
67 for (i = 0; i < 16; i++)
69 if ((x & (((UINT16) 1) << i)) != 0)
81 for (i = 0; i < 32; i++)
83 if ((x & (((UINT32) 1) << i)) != 0)
95 for (i = 0; i < 16; i++)
97 if ((x & (((UINT64) 1) << i)) != 0)
111 for (byte = 0; byte < nbits / 8; byte++)
113 for (bit = 0; bit < 8; bit++)
115 bitset[count++] = ((mem[byte] & (((char) 1) << bit)) != 0) ?
'1' :
'0';
117 bitset[count++] =
' ';
119 bitset[
count] =
'\0';
123 main (
int ignore_argc,
char **ignore_argv)
134 char bitset_buf[100];
138 printf (
"start test\n");
142 for (i = 0; i < 256; i++)
152 if (unittest_result != bit_result)
155 printf (
"error bit8_count_ones: \n" 156 "bitset: %s\n unit test: %d\n bit8: %d\n", bitset_buf, unittest_result, bit_result);
159 unittest_result = 8 - unittest_result;
161 if (unittest_result != bit_result)
164 printf (
"error bit8_count_zeros: \n" 165 "bitset: %s\n unit test: %d\n bit8: %d\n", bitset_buf, unittest_result, bit_result);
169 unittest_result =
ctz8 (ub);
171 if (unittest_result != bit_result)
174 printf (
"error bit8_count_trailing_zeros: \n" 175 "bitset: %s\n unit test: %d\n bit8: %d\n", bitset_buf, unittest_result, bit_result);
178 unittest_result =
ctz8 (~ub);
180 if (unittest_result != bit_result)
183 printf (
"error bit8_count_trailing_ones: \n" 184 "bitset: %s\n unit test: %d\n bit8: %d\n", bitset_buf, unittest_result, bit_result);
189 std::memcpy (&us, rands,
sizeof (UINT16));
191 unittest_result =
count_bits ((
unsigned char *) &us, 16);
193 if (unittest_result != bit_result)
196 printf (
"error bit16_count_ones: \n" 197 "bitset: %s\n unit test: %d\n bit16: %d\n", bitset_buf, unittest_result, bit_result);
200 unittest_result = 16 - unittest_result;
202 if (unittest_result != bit_result)
205 printf (
"error bit16_count_zeros: \n" 206 "bitset: %s\n unit test: %d\n bit16: %d\n", bitset_buf, unittest_result, bit_result);
210 unittest_result =
ctz16 (us);
212 if (unittest_result != bit_result)
215 printf (
"error bit16_count_trailing_zeros: \n" 216 "bitset: %s\n unit test: %d\n bit16: %d\n", bitset_buf, unittest_result, bit_result);
219 unittest_result =
ctz16 (~us);
221 if (unittest_result != bit_result)
224 printf (
"error bit16_count_trailing_ones: \n" 225 "bitset: %s\n unit test: %d\n bit16: %d\n", bitset_buf, unittest_result, bit_result);
230 ui = *(UINT32 *) rands;
232 unittest_result =
count_bits ((
unsigned char *) &ui, 32);
234 if (unittest_result != bit_result)
237 printf (
"error bit32_count_ones: \n" 238 "bitset: %s\n unit test: %d\n bit32: %d\n", bitset_buf, unittest_result, bit_result);
241 unittest_result = 32 - unittest_result;
243 if (unittest_result != bit_result)
246 printf (
"error bit32_count_zeros: \n" 247 "bitset: %s\n unit test: %d\n bit32: %d\n", bitset_buf, unittest_result, bit_result);
251 unittest_result =
ctz32 (ui);
253 if (unittest_result != bit_result)
256 printf (
"error bit32_count_trailing_zeros: \n" 257 "bitset: %s\n unit test: %d\n bit32: %d\n", bitset_buf, unittest_result, bit_result);
260 unittest_result =
ctz32 (~ui);
262 if (unittest_result != bit_result)
265 printf (
"error bit32_count_trailing_ones: \n" 266 "bitset: %s\n unit test: %d\n bit32: %d\n", bitset_buf, unittest_result, bit_result);
271 std::memcpy (&ull, rands,
sizeof (UINT64));
273 unittest_result =
count_bits ((
unsigned char *) &ull, 64);
275 if (unittest_result != bit_result)
278 printf (
"error bit64_count_ones: \n" 279 "bitset: %s\n unit test: %d\n bit64: %d\n", bitset_buf, unittest_result, bit_result);
282 unittest_result = 64 - unittest_result;
284 if (unittest_result != bit_result)
287 printf (
"error bit64_count_zeros: \n" 288 "bitset: %s\n unit test: %d\n bit64: %d\n", bitset_buf, unittest_result, bit_result);
292 unittest_result =
ctz64 (ull);
294 if (unittest_result != bit_result)
297 printf (
"error bit64_count_trailing_zeros: \n" 298 "bitset: %s\n unit test: %d\n bit64: %d\n", bitset_buf, unittest_result, bit_result);
301 unittest_result =
ctz64 (~ull);
303 if (unittest_result != bit_result)
306 printf (
"error bit64_count_trailing_ones: \n" 307 "bitset: %s\n unit test: %d\n bit64: %d\n", bitset_buf, unittest_result, bit_result);
311 printf (
"success\n");
int bit64_count_trailing_zeros(UINT64 i)
static int count_bits(const unsigned char *mem, int nbits)
int bit8_count_trailing_ones(UINT8 i)
int bit16_count_zeros(UINT16 i)
int bit64_count_trailing_ones(UINT64 i)
int bit8_count_trailing_zeros(UINT8 i)
int bit32_count_zeros(UINT32 i)
static int ctz16(UINT16 x)
int bit16_count_trailing_ones(UINT16 i)
int bit16_count_trailing_zeros(UINT16 i)
static int ctz64(UINT64 x)
int bit8_count_zeros(UINT8 i)
int bit32_count_trailing_zeros(UINT32 i)
int count(int &result, const cub_regex_object ®, const std::string &src, const int position, const INTL_CODESET codeset)
int bit16_count_ones(UINT16 i)
static int ctz32(UINT32 x)
int bit32_count_ones(UINT32 i)
int bit64_count_zeros(UINT64 i)
static const char nbits[]
int main(int ignore_argc, char **ignore_argv)
int bit32_count_trailing_ones(UINT32 i)
int bit64_count_ones(UINT64 i)
int bit8_count_ones(UINT8 i)
static void bitset_string(const unsigned char *mem, int nbits, char *bitset)