summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Bradley <jcb@pikum.xyz>2025-09-11 12:22:12 -0400
committerJonathan Bradley <jcb@pikum.xyz>2025-09-12 08:53:07 -0400
commite4cec8bd86903ba3d996ccac7879ae8a93edcabe (patch)
treeac88ac0fd80a60814996371e359f77e74540c231
parenta82366ddb30da36061f37efc6a009fad02c9b3a8 (diff)
pkmacros: PK_TO_BIN parenthesize, proper casting
-rw-r--r--pkmacros.h6
-rw-r--r--test/pkmacros.c33
2 files changed, 27 insertions, 12 deletions
diff --git a/pkmacros.h b/pkmacros.h
index 5f50836..647a3b7 100644
--- a/pkmacros.h
+++ b/pkmacros.h
@@ -40,9 +40,9 @@
((byte) & 0x02 ? '1' : '0'), \
((byte) & 0x01 ? '1' : '0')
#define PK_TO_BIN_8(u8) PK_TO_BIN(u8)
-#define PK_TO_BIN_16(u16) PK_TO_BIN((u16 >> 8)), PK_TO_BIN(u16 & 0x00FF)
-#define PK_TO_BIN_32(u32) PK_TO_BIN_16((u32 >> 16)), PK_TO_BIN_16(u32 & 0x0000FFFF)
-#define PK_TO_BIN_64(u64) PK_TO_BIN_32((u64 >> 32)), PK_TO_BIN_32(u64 & 0x00000000FFFFFFFF)
+#define PK_TO_BIN_16(u16) PK_TO_BIN((u16 >> 8)), PK_TO_BIN((u16 & 0x00FF))
+#define PK_TO_BIN_32(u32) PK_TO_BIN_16((u32 >> 16)), PK_TO_BIN_16((u32 & 0x0000FFFF))
+#define PK_TO_BIN_64(u64) PK_TO_BIN_32((u64 >> 32)), PK_TO_BIN_32((u64 & 0x00000000FFFFFFFF))
#if defined(__cplusplus)
# define CAFE_BABE(T) reinterpret_cast<T *>(0xCAFEBABE)
diff --git a/test/pkmacros.c b/test/pkmacros.c
index 2a1f626..02885f6 100644
--- a/test/pkmacros.c
+++ b/test/pkmacros.c
@@ -10,7 +10,10 @@ int main(int argc, char *argv[])
(void)argc;
(void)argv;
(void)stdout;
-
+ uint8_t u8;
+ uint16_t u16;
+ uint32_t u32;
+ uint64_t u64;
// MISC
{
PK_LOGV_INF("PK_HAS_FLAG 000: %b\n", PK_HAS_FLAG(0xFF, 5));
@@ -29,18 +32,30 @@ int main(int argc, char *argv[])
// PK_TO_BIN printing
{
- uint8_t u8 = 0x55; // 01010101
- uint16_t u16 = 0x5555;
- uint32_t u32 = 0x55555555;
- uint64_t u64 = 0x5555555555555555;
+ for (uint64_t i = 0; i < 64; ++i) {
+ u64 = 1llu << i;
+ PK_LOGV_INF(PK_TO_BIN_PAT_64"\n", PK_TO_BIN_64(u64));
+ }
+ u8 = 1;
+ u16 = 1;
+ u32 = 1;
+ u64 = 1;
+ PK_LOGV_INF(PK_TO_BIN_PAT_8 "\n", PK_TO_BIN_8(u8));
+ PK_LOGV_INF(PK_TO_BIN_PAT_16"\n", PK_TO_BIN_16(u16));
+ PK_LOGV_INF(PK_TO_BIN_PAT_32"\n", PK_TO_BIN_32(u32));
+ PK_LOGV_INF(PK_TO_BIN_PAT_64"\n", PK_TO_BIN_64(u64));
+ u8 = 0x55; // 01010101
+ u16 = 0x5555;
+ u32 = 0x55555555;
+ u64 = 0x5555555555555555;
PK_LOGV_INF(PK_TO_BIN_PAT_8 "\n", PK_TO_BIN_8(u8));
PK_LOGV_INF(PK_TO_BIN_PAT_16"\n", PK_TO_BIN_16(u16));
PK_LOGV_INF(PK_TO_BIN_PAT_32"\n", PK_TO_BIN_32(u32));
PK_LOGV_INF(PK_TO_BIN_PAT_64"\n", PK_TO_BIN_64(u64));
- u8 = 0xAA; // 10101010
- u16 = 0xAAAA;
- u32 = 0xAAAAAAAA;
- u64 = 0xAAAAAAAAAAAAAAAA;
+ u8 = 0xAA; // 10101010
+ u16 = 0xAAAA;
+ u32 = 0xAAAAAAAA;
+ u64 = 0xAAAAAAAAAAAAAAAA;
PK_LOGV_INF(PK_TO_BIN_PAT_8 "\n", PK_TO_BIN_8(u8));
PK_LOGV_INF(PK_TO_BIN_PAT_16"\n", PK_TO_BIN_16(u16));
PK_LOGV_INF(PK_TO_BIN_PAT_32"\n", PK_TO_BIN_32(u32));