【问题标题】:Storing GMP mpf_t and an mpz_t types in a file在文件中存储 GMP mpf_t 和 mpz_t 类型
【发布时间】:2013-08-05 22:48:41
【问题描述】:

如何将 mpf_t 或 mpz_t 类型的 GMP 对象保存在 C 文件中? 或者我怎样才能访问这些类型的分配内存块,以便我可以将它们直接写入文件?

编辑

fwrite(&gmp_obj->_mp_size, sizeof(long), 1, fout);
fwrite(&gmp_obj->_mp_prec, sizeof(long), 1, fout);
fwrite(&gmp_obj->_mp_exp, sizeof(long), 1, fout);
fwrite(gmp_obj->_mp_d, sizeof(long), gmp_obj->_mp_size, fout);

【问题讨论】:

    标签: c file gmp storing-data


    【解决方案1】:

    您可以使用 GMP 的 I/O 功能。对于mpf_t

    ——功能:size_t mpf_out_str (FILE *stream, int base, size_t n_digits, mpf_t op)
    — 功能:size_t mpf_inp_str (mpf_t rop, FILE *stream, int base)

    对于mpz_t

    ——功能:size_t mpz_out_str (FILE *stream, int base, mpz_t op)
    — 功能:size_t mpz_inp_str (mpz_t rop, FILE *stream, int base)
    — 功能:size_t mpz_out_raw (FILE *stream, mpz_t op)
    — 功能:size_t mpz_inp_raw (mpz_t rop, FILE *stream)

    除了*_raw,还有mpz_t 的二进制导入/导出函数,在separate section 中有描述)

    ——功能:void mpz_import (mpz_t rop, size_t count, int order, size_t size, int endian, size_t nails, const void *op)
    — 功能:void * mpz_export (void *rop, size_t *countp, int order, size_t size, int endian, size_t nails, mpz_t op)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-12
      • 2012-10-16
      • 1970-01-01
      相关资源
      最近更新 更多