summaryrefslogtreecommitdiff
path: root/src/binary.c
blob: bf5ac8969c91e553714edad91d163fe2059ecc60 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
#include "binary.h"

strng_t *strng_u64_bin(smrt_arena_t *arena, u64 n) {
    strng_t *s = strng_new(arena, 64);
    s->len = 64;
    for (u8 i = 0; i < 64; i++) {
        b8 set = (n & (1ull << i)) != 0;
        ((u8*)s)[STRNG_BASE_POS + (63 - i)] = set ? '1' : '0';
    }

    return s;
}