summaryrefslogtreecommitdiff
path: root/src/binary.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/binary.c')
-rw-r--r--src/binary.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/binary.c b/src/binary.c
new file mode 100644
index 0000000..bf5ac89
--- /dev/null
+++ b/src/binary.c
@@ -0,0 +1,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;
+}
+