aboutsummaryrefslogtreecommitdiff
path: root/2025-linuxdays/bits.c
blob: f16b2323f6701ee45db588bbeabe87e8004efc5a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <assert.h>
#include <stdbit.h>

int main(int argc, char *argv[]) {
  assert(stdc_leading_zeros(0xffU) == 24);
  assert(stdc_leading_ones(0xff000000U) == 8);
  assert(stdc_trailing_zeros(0xff000000U) == 24);
  assert(stdc_trailing_ones(0xffU) == 8);
  assert(stdc_first_leading_zero(0xff000000U) == 9);
  assert(stdc_first_leading_one(0xffU) == 25);
  assert(stdc_first_trailing_zero(0xffU) == 9);
  assert(stdc_first_trailing_one(0xff000000U) == 25);
  assert(stdc_count_zeros(0xffU) == 24);
  assert(stdc_count_ones(0xffU) == 8);
  assert(stdc_has_single_bit(1U << 13));
  assert(stdc_bit_width(0xf0U) == 8);
  assert(stdc_bit_floor(0xf1U) == 0x80);
  assert(stdc_bit_ceil(0xf1U) == 0x100);
  return 0;
}