Import GMP进出口

Import GMP进出口,import,export,biginteger,gmp,sign,Import,Export,Biginteger,Gmp,Sign,我在导入/导出方面有问题。 我尝试转换一个负整数和正整数,但当我处理负数时 我把牌子弄丢了。 有关于它的例子吗 出口: int mydim = (mpz_sizeinbase(c, 2) +7)/ 8; myb = ( char*) malloc(sizeof(char) * mydim); count = (size_t*) malloc(sizeof(size_t));

我在导入/导出方面有问题。 我尝试转换一个负整数和正整数,但当我处理负数时 我把牌子弄丢了。 有关于它的例子吗

出口:

                    int mydim = (mpz_sizeinbase(c, 2) +7)/ 8;
                    myb =  ( char*) malloc(sizeof(char) * mydim);
                    count = (size_t*) malloc(sizeof(size_t));

                    if(mpz_sgn(c)>=0){
                    mpz_export((void *) myb, count, 1, sizeof( char), 1, 0, c);
                            }
                            else{
                    mpz_add_ui(c,c,1);
                    mpz_export((void*)myb, count, 1, sizeof( char), 1, 0, c);
                    for(int i =0;i<=mydim;i++){ //This could be done more effectively
                            myb[i]=~myb[i];
                    }
                    }
intmydim=(mpz_sizeinbase(c,2)+7)/8;
myb=(char*)malloc(sizeof(char)*mydim);
count=(size_t*)malloc(sizeof(size_t));
如果(mpz_sgn(c)>=0){
mpz_导出((void*)myb,count,1,sizeof(char),1,0,c);
}
否则{
mpz_-add_-ui(c,c,1);
mpz_导出((void*)myb,count,1,sizeof(char),1,0,c);
对于(int i=0;i

忽略op的符号,只使用绝对值

报告说:

忽略op的符号,只使用绝对值


如何声明
myb
?如果它是
char*
,请检查
char
在您的平台上是有符号的还是无符号的。char是有符号的。如果我在应用程序中使用char,结果总是负数。如果我使用无符号char,结果总是正数
myb
如何声明?如果它是
char*
,请检查查看
char
在您的平台上是有符号的还是无符号的。char是有符号的。如果我在应用程序中使用char,结果总是负数。如果我使用无符号char,结果总是正数
            mpz_import(s, *count, 1, sizeof(myb[0]), 1, 0, myb);
            int sign = myb[0] < 0?-1:1;
            if(sign == -1)
                    mpz_neg(s,s);