Big Integer Storage Template

Big Integer Storage Template


struct bign{

    int data[40];
    int len;

    bign(){
        memset(data,0,sizeof(data));
        len=0;
    }   

};


//将读入的char* 类型的字符串转换为bign类型。

bign change(char[] str){

    bign a;

    a.len = strlen(str);

    for(int i=0;i<a.len; i++){

        a.data[i] = str[a.len-1-i];

    }

    return a;


} 

//比较两个bign类型变量的大小

bool cmp(bign a,bign b){

    if(a.len > b.len){
        return 1;
    }else if( a.len < b.len ){
        return -1;
    }else{

        for(int i=a.len-1;i >=0;i--){  //从高位到低位进行比较 

            if(a.data[i] > b.data[i] ){
                return 1;
            }else if( a.data[i] < b.data[i] ){
                return -1;
            }

        }       

    }


    return 0;


} 










Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324734503&siteId=291194637