diff options
| author | Jonathan Bradley <jcb@pikum.xyz> | 2025-09-11 12:22:12 -0400 |
|---|---|---|
| committer | Jonathan Bradley <jcb@pikum.xyz> | 2025-09-12 08:53:07 -0400 |
| commit | e4cec8bd86903ba3d996ccac7879ae8a93edcabe (patch) | |
| tree | ac88ac0fd80a60814996371e359f77e74540c231 | |
| parent | a82366ddb30da36061f37efc6a009fad02c9b3a8 (diff) | |
pkmacros: PK_TO_BIN parenthesize, proper casting
| -rw-r--r-- | pkmacros.h | 6 | ||||
| -rw-r--r-- | test/pkmacros.c | 33 |
2 files changed, 27 insertions, 12 deletions
@@ -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)); |
