gpt4 book ai didi

c - 将 GMP mpf_t 和 mpz_t 类型存储在文件中

转载 作者:行者123 更新时间:2023-12-02 02:46:06 24 4
gpt4 key购买 nike

如何将 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);

最佳答案

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

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

对于mpz_t :

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

除了 *_raw 之外,还有 mpz_t 的二进制导入/导出函数,如 separate section 中所述。 )

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

关于c - 将 GMP mpf_t 和 mpz_t 类型存储在文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18069073/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com