static int base58_encode_reverse(mrb_state *mrb, char *dst, const char *data, int length, const char *chars) { Bignum *b = bignum_alloc(mrb, data, length); int index = 0; int i; do { dst[index] = chars[bignum_div(b, 58)]; index++; } while (!bignum_is_zero(b)); for (i = 0; i < length; ++i) { if (data[i] == 0) { dst[index] = chars[0]; index++; } else { break; } } bignum_free(b); return index; }
static _rs_inline obj bignum_quotient( obj a, obj b ) { return bignum_div( a, b ); }