程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 支持上千位的大整數類BigInt(由於項目中不使用除法,所以沒有實現)

支持上千位的大整數類BigInt(由於項目中不使用除法,所以沒有實現)

編輯:C++入門知識

 
   _BIG_INT_
 
 #include <iostream>
 #include <>
 #include <.h>
 #include <cassert>
 #include <sys/types.h>
 
   int64_t SIZE =  
 
        
       
                           big_int():len(), positive(){ memset(array, , SIZE*()); }
     big_int( *a,      big_int(  *ch,       big_int( std::&      big_int ( 
     ~ 
     big_int( big_int&     big_int&  = ( big_int& 
     big_int&  += ( big_int&     big_int&  -= ( big_int&     big_int&  *= ( big_int&     big_int  -     big_int&  ++ ();
     big_int  ++ (     big_int&  -- ();
     big_int  -- ( 
     inline  length()      inline  is_positive()      big_int abs()       friend std::ostream&  << (std::ostream& os,  big_int&     friend   == ( big_int& lbi,  big_int&     friend   != ( big_int& lbi,  big_int&     friend   < ( big_int& lbi,  big_int&     friend big_int  + ( big_int& lbi,  big_int&     friend big_int  - ( big_int& lbi,  big_int&     friend big_int  * ( big_int& lbi,  big_int&  
 std::ostream&  << (std::ostream& os,  big_int&   == ( big_int& lbi,  big_int&   != ( big_int& lbi,  big_int&   < ( big_int& lbi,  big_int& big_int  + ( big_int& lbi,  big_int& big_int  - ( big_int& lbi,  big_int& big_int  * ( big_int& lbi,  big_int& 
   
  big_int::is_positive() 
          
  big_int::length() 
        
 
 #include 
   
        num =      ( i = SIZE-; i != -; --          (array[i] !=                       ++       (SIZE - num) ==  ?  : (SIZE -    
 big_int::big_int( std::&      memset(array, , SIZE*(     (str[] ==          positive =      
         positive =      len = positive ? str.size() : str.size()-      j = positive ?  :       end = j-     ( i = str.size()-, k = len-; i != end; --i, ++j, --         array[k] = str[j] -     
 big_int::big_int( *a,       memset(array, , SIZE*(     assert(a !=     (a[] <          positive =      
         positive =      len =     array[len-] = positive ? a[] : -a[     ( i = len-, j = ; i != -; --i, ++         array[i] =    
 big_int::big_int(  *ch,       memset(array, , SIZE*(     assert(ch !=     (ch[] ==          positive =      
         positive =      len = positive ? l : l-      j = positive ?  :       end = j-     ( i = l-, k = len-; i != end; --i, ++j, --         array[k] = ch[j] -     
 big_int::big_int( big_int&      memcpy(array, b.array, SIZE*(     len =     positive =    
 big_int::big_int(      memset(array, , SIZE*(     int64_t t =     (t <           positive =          t = -      
         positive =       l = , i =      (t ==           array[] =          len =       
     {                  array[i] = t %              t /=              ++             ++          len =     
 big_int& big_int:: = ( big_int&      (* ==          *     memcpy(array, b.array, SIZE*(     len =     positive =      *    
 big_int& big_int:: += ( big_int&      (positive == bi.positive)
           tmpi =           end = len >= bi.len ?         ( i = ; i != end+; ++              tmpi += array[i] +             array[i] = tmpi %              tmpi /=        
          (->abs() ==              * =          (->abs() <               ( i = ; i != tmp.len; ++                  (array[i] >                     tmp.array[i]+=, --tmp.array[i+                 array[i] = tmp.array[i] -              positive =          
              ( i = ; i != len; ++                  (bi.array[i] >                     array[i]+=, --array[i+                 array[i] = array[i] -        len =      *    
 big_int& big_int:: -= ( big_int&        * += -    
 big_int& big_int:: *= ( big_int&            x =      memset(array_tmp, , SIZE*(     (bi == big_int(          positive =           * = big_int(      
     (len <=          
             
         ( i = ; i != len; ++              ( j = i, k = ; k != bi.len; ++j, ++                  x = array[i] *                 array_tmp[j] +=                 (array_tmp[j] >=                       array_tmp[j+] += array_tmp[j] /                      array_tmp[j] %=          
          
             
         ( i = ; i != bi.len; ++              ( j = i, k = ; k != len; ++j, ++                  x = bi.array[i] *                 array_tmp[j] +=                  (array_tmp[j] >=                       array_tmp[j+] += array_tmp[j] /                      array_tmp[j] %=          positive = (positive == bi.positive ?  :      memcpy(array, array_tmp, SIZE*(     len =      *    
 big_int big_int:: -      big_int tmp(*     tmp.positive = !         
 big_int& big_int:: ++ ()
       * += big_int(    
 big_int big_int:: ++ (      big_int tmp(*     ++*         
 big_int& big_int:: -- ()
       * -= big_int(    
 big_int big_int:: -- (      big_int tmp(*     --*         
 big_int big_int::abs() 
      big_int tmp(*     tmp.positive =          
 std::ostream&  << (std::ostream& os,  big_int&      (!         os<<     ( i = bi.len-; i != -; --         os<<         
   == ( big_int& lbi,  big_int&      (lbi.len != rbi.len || lbi.positive !=               
          ( i = ; i != lbi.len; ++             (lbi.array[i] !=                             
   != ( big_int& lbi,  big_int&       !(lbi ==    
   < ( big_int& lbi,  big_int&      (lbi.positive !=          (lbi.positive ==                        
                     (lbi.len !=          (lbi.positive ==  && lbi.len >                        (lbi.positive ==  && lbi.len <                        (lbi.positive ==  && lbi.len >                        (lbi.positive ==  && lbi.len <                    
          (lbi.positive ==               ( i = lbi.len-; i != -; --                  (lbi.array[i] ==                                       (lbi.array[i] <                                       
                                 
              ( i = lbi.len-; i != -; --                  (lbi.array[i] ==                                       (lbi.array[i] <                                       
                             
 big_int  + ( big_int& lbi,  big_int&       tmp +=         
 big_int  - ( big_int& lbi,  big_int&        tmp -=    
 big_int  * ( big_int& lbi,  big_int&        tmp *= }

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved