ref: 3b7e03a30ed29ee0666c00568bf67b8179c28d12
dir: /sys/src/libmp/port/mptober.c/
#include "os.h" #include <mp.h> #include "dat.h" void mptober(mpint *b, uchar *p, int n) { int i, j, m; mpdigit x; memset(p, 0, n); p += n; m = b->top*Dbytes; if(m < n) n = m; i = 0; while(n >= Dbytes){ n -= Dbytes; x = b->p[i++]; for(j = 0; j < Dbytes; j++){ *--p = x; x >>= 8; } } if(n > 0){ x = b->p[i]; for(j = 0; j < n; j++){ *--p = x; x >>= 8; } } }