{
-#if UINT_MAX / 0xffffu == 1
+#if UINT_MAX >> 15 == 1
#define _PDCLIB_UINT_DIG 5
#define _PDCLIB_INT_DIG 5
#define _PDCLIB_INT_HEXDIG FFFF
#define _PDCLIB_INT_hexdig ffff
#define _PDCLIB_INT_OCTDIG 177777
-#elif UINT_MAX / 0xffffffffu == 1
+#elif UINT_MAX >> 31 == 1
#define _PDCLIB_UINT_DIG 10
#define _PDCLIB_INT_DIG 10
#define _PDCLIB_INT_HEXDIG FFFFFFFF
#define _PDCLIB_INT_hexdig ffffffff
#define _PDCLIB_INT_OCTDIG 37777777777
-#elif UINT_MAX / 0xffffffffffffffffu == 1
+#elif UINT_MAX >> 63 == 1
#define _PDCLIB_UINT_DIG 20
#define _PDCLIB_INT_DIG 19
#define _PDCLIB_INT_HEXDIG FFFFFFFFFFFFFFFF
#error Unsupported width of 'int' (neither 16, 32, nor 64 bit).
#endif
-#if ULONG_MAX / 0xfffffffful == 1
+#if ULONG_MAX >> 31 == 1
#define _PDCLIB_ULONG_DIG 10
#define _PDCLIB_LONG_DIG 10
-#elif ULONG_MAX / 0xfffffffffffffffful == 1
+#elif ULONG_MAX >> 63 == 1
#define _PDCLIB_ULONG_DIG 20
#define _PDCLIB_LONG_DIG 19
#else
#error Unsupported width of 'long' (neither 32 nor 64 bit).
#endif
-#if ULLONG_MAX / 0xffffffffffffffffull == 1
+#if ULLONG_MAX >> 63 == 1
#define _PDCLIB_ULLONG_DIG 20
#define _PDCLIB_LLONG_DIG 19
-#elif ULLONG_MAX / 0xffffffffffffffffffffffffffffffffull == 1
+#elif ULLONG_MAX >> 127 == 1
#define _PDCLIB_ULLONG_DIG 38
#define _PDCLIB_LLONG_DIG 38
#else