/* test_itoa.c Copyleft (C) 2022 Taiji Yamada */ #include #include #include #include #include "itoa.h" int main() { const int radix_ub = /*32*/10, radix_lb = 2; char buf[256]; for (int r=radix_ub; !(r < radix_lb); --r/*r=radix_lb; r < radix_ub+1; ++r*/) { itoa(-1, buf, r); printf("base %d %s (%zu chars)\t%d\n", r, buf, strlen(buf), stoi(buf, r)); } printf("\n"); for (int r=radix_ub; !(r < radix_lb); --r/*r=radix_lb; r < radix_ub+1; ++r*/) { i16toa(INT16_C(-1), buf, r); printf("base %d %s (%zu chars)\t%" PRId16 "\n", r, buf, strlen(buf), stoi16(buf, r)); } printf("\n"); for (int r=radix_ub; !(r < radix_lb); --r/*r=radix_lb; r < radix_ub+1; ++r*/) { ui16toa(~INT16_C(0), buf, r); printf("base %d %s (%zu chars)\t%" PRIu16 "\n", r, buf, strlen(buf), stoui16(buf, r)); } printf("\n"); for (int r=radix_ub; !(r < radix_lb); --r/*r=radix_lb; r < radix_ub+1; ++r*/) { i32toa(INT32_C(-1), buf, r); printf("base %d %s (%zu chars)\t%" PRId32 "\n", r, buf, strlen(buf), stoi32(buf, r)); } printf("\n"); for (int r=radix_ub; !(r < radix_lb); --r/*r=radix_lb; r < radix_ub+1; ++r*/) { ui32toa(~INT32_C(0), buf, r); printf("base %d %s (%zu chars)\t%" PRIu32 "\n", r, buf, strlen(buf), stoui32(buf, r)); } printf("\n"); return 0; }