diff --git a/22-malloc/libc/string.c b/22-malloc/libc/string.c index 9b8a6d3..eb587c2 100644 --- a/22-malloc/libc/string.c +++ b/22-malloc/libc/string.c @@ -25,17 +25,13 @@ void hex_to_ascii(int n, char str[]) { s32 tmp; int i; - for (i = 28; i > 0; i -= 4) { + for (i = 28; i >= 0; i -= 4) { tmp = (n >> i) & 0xF; if (tmp == 0 && zeros == 0) continue; zeros = 1; - if (tmp > 0xA) append(str, tmp - 0xA + 'a'); + if (tmp >= 0xA) append(str, tmp - 0xA + 'a'); else append(str, tmp + '0'); } - - tmp = n & 0xF; - if (tmp >= 0xA) append(str, tmp - 0xA + 'a'); - else append(str, tmp + '0'); } /* K&R */ diff --git a/23-fixes/libc/string.c b/23-fixes/libc/string.c index 688f4a5..9c2f399 100644 --- a/23-fixes/libc/string.c +++ b/23-fixes/libc/string.c @@ -25,17 +25,13 @@ void hex_to_ascii(int n, char str[]) { int32_t tmp; int i; - for (i = 28; i > 0; i -= 4) { + for (i = 28; i >= 0; i -= 4) { tmp = (n >> i) & 0xF; if (tmp == 0 && zeros == 0) continue; zeros = 1; - if (tmp > 0xA) append(str, tmp - 0xA + 'a'); + if (tmp >= 0xA) append(str, tmp - 0xA + 'a'); else append(str, tmp + '0'); } - - tmp = n & 0xF; - if (tmp >= 0xA) append(str, tmp - 0xA + 'a'); - else append(str, tmp + '0'); } /* K&R */