C,C++大數相加

來源:互聯網
上載者:User
#include <stdio.h>#include <stdlib.h>#define NUM_LEN 100int add_str(char * pch1,char * pch2 , char * chResult){    chResult[NUM_LEN-1]='\0';    int idx=NUM_LEN-2;    char *pEnd1=pch1,*pEnd2=pch2;    for(;*pEnd1!='\0';pEnd1++);    for(;*pEnd2!='\0';pEnd2++);    pEnd1--;    pEnd2--;    short flag=0;     //是否有進位    for(;(pEnd1!=pch1-1) || (pEnd2!=pch2-1);){        short b1=0;        if(pEnd1!=pch1-1){            b1= (short)(*pEnd1)-(short)'0'; // '0' -> 0            pEnd1--;        }        short b2=0;        if(pEnd2!=pch2-1){            b2= (short)(*pEnd2)-(short)'0'; // '0' -> 0            pEnd2--;        }        short sResult = b1+b2+flag;        flag=0;        if(sResult>9){flag=sResult/10;sResult %=10;}        chResult[idx--] =(char)( sResult+(short)'0');    }    if(flag)chResult[idx--]=flag+(short)'0';    return idx+1;}int main(){    char ch1[NUM_LEN],ch2[NUM_LEN],chResult[NUM_LEN];    printf("Num1:");    scanf("%s",ch1);    printf("\nNum2:");    scanf("%s",ch2);    printf("\nNum1=%s",ch1);    printf("\nNum2=%s",ch2);    int idx=add_str(ch1,ch2,chResult);    printf("\n結果:%s",(char*)chResult+idx);    return 0;}

  

GMP:GMP大數庫是GNU項目的一部分,誕生於1991年。作為一個任意精度的大整數運算庫,它包括了任意精度的帶正負號的整數、有理數、浮點數的各種基本運算操作。它是一個c語言的庫,但是官方提供了c++的封裝類,主要的應用方向是密碼學、網路安全、代數系統、計算科學等。GMP庫的運行速度非常快的,它的官方網站上稱自己為地球上最快的大數庫,但是GMP庫所提供的只是數學運算功能,並沒有密碼學相關的進階功能。

 Miracl:Miracl庫是Shamus Software Ltd開發的一個大數庫,它的使用許可針對教育科學研究或者非商業目的地應用是免費的。在應用上它是一個c語言的庫,同時提供了幾個較為簡單的c++封裝類。在功能上它不但提供了高精度的大整數和分數的各種數學運算操作而且提供了很多密碼學演算法中的功能模組,如SHA、AES、DSA等中的一些底層操作。最為特別的是它還提供了很多橢圓曲線密碼體制中的底層功能模組。由於Miracl庫的內部實現採用了很多的彙編層的代碼,故運行速度也非常快。

 Crypto++:Crypto++庫是一個開源項目,也是免費使用的。由於它是一個純c++實現的庫,所以應用非常的方便,庫的結構清晰,使用方便,文檔也很健全。Crypto++庫提供了很多密碼學演算法的實現。

?OpenSSL:OpenSSL是一個開放原始碼的實現了SSL及相關加密技術的軟體包,由加拿大的Eric Yang等發起編寫的。它可以實現訊息摘要、檔案的加密和解密、數位憑證、數位簽章和隨機數字等。 它的主要用途並不是大數庫,而是SSL協議的實現和應用,但是其中也有一些關於大整數的功能,此外它也是基於c語言。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.