From 470bb0968ae6c9d19cb2933c5c944114f0884eed Mon Sep 17 00:00:00 2001 From: dzaima Date: Thu, 28 Oct 2021 21:21:25 +0300 Subject: [PATCH] use hex in printBC --- src/vm.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/src/vm.c b/src/vm.c index 3dcd34e9..cd57b53a 100644 --- a/src/vm.c +++ b/src/vm.c @@ -34,19 +34,18 @@ void printBC(u32* p, i32 w) { printf("%s", str); u32* n = nextBC(p); p++; - i64 am = n-p; i32 len = strlen(str); - for (i64 i = 0; i < am; i++) printf(" %d", p[i]); while(p!=n) { - i32 c = *p++; - if (c<0) { - c = -c; - len++; + u32 c = (u32)*p++; + char buf[10]; + i32 clen = 0; + while (c) { + buf[clen++] = (c&15)>9? 'A'+(c&15)-10 : '0'+(c&15); + c>>= 4; } - i64 pow = 10; - i32 log = 1; - while (pow<=c) { pow*=10; log++; } - len+= log+1; + putchar(' '); + for (i32 i = 0; i < clen; i++) putchar(buf[clen-i-1]); + len+= clen+1; } len = w-len; while(len-->0) putchar(' ');