Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2017
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.59 KB | None | 0 0
  1. BN  BN::operator+(BN & second_number)
  2. {  
  3.     unsigned long int R;
  4.     unsigned short k=0;
  5.     int i;
  6.     if(*this>=second_number)
  7.     {  
  8.         if (second_number.len==1&&second_number.number[0]==0)
  9.             return *this;
  10.  
  11.         BN result(len+1,0);
  12.         result.len=len+1;
  13.         for(i=0;i<second_number.len;++i)
  14.         {  
  15.            
  16.             R=number[i]+second_number.number[i]+k;
  17.             result.number[i]=BASE(R);
  18.             //cout<<hex<<result.number[i]<<" ";
  19.             k=R>>sizeof(BASE)*8;
  20.         }
  21.        
  22.    
  23.        
  24.         {  
  25.             while(i<len)
  26.             {
  27.                 R=number[i]+k;
  28.  
  29.                 result.number[i]=BASE(R);
  30.                 //cout<<hex<<result.number[i]<<" ";
  31.                 k=R>>sizeof(BASE)*8;
  32.                 ++i;
  33.             }
  34.  
  35.             while(i<result.len)
  36.             {
  37.                 R=result.number[i]+k;
  38.  
  39.                 result.number[i]=BASE(R);
  40.                 //cout<<hex<<result.number[i]<<" ";
  41.                 k=R>>sizeof(BASE)*8;
  42.                 ++i;
  43.             }
  44.         }  
  45.         //result.sub_null();
  46.         //cout<<result<<endl;
  47.         //cout<<endl;
  48.         return result;
  49.     }
  50.  
  51.     else
  52.     {  
  53.         if (len==1&&number[0]==0)
  54.             return second_number;
  55.         BN result(second_number.len+1,0);
  56.         result.len=second_number.len+1;
  57.         for(i=0;i<len;++i)
  58.         {
  59.             R=number[i]+second_number.number[i]+k;
  60.             result.number[i]=BASE(R);
  61.             //cout<<hex<<result.number[i]<<" ";
  62.             k=R>>sizeof(BASE)*8;
  63.         }
  64.  
  65.  
  66.  
  67.             while(i<second_number.len)
  68.             {
  69.                 R=second_number.number[i]+k;
  70.                 result.number[i]=BASE(R);
  71.                 //cout<<hex<<result.number[i]<<" ";
  72.                 k=R>>sizeof(BASE)*8;
  73.                 ++i;
  74.             }
  75.  
  76.             while(i<result.len)
  77.             {
  78.                 R=result.number[i]+k;
  79.  
  80.                 result.number[i]=BASE(R);
  81.                 //cout<<hex<<result.number[i]<<" ";
  82.                 k=R>>sizeof(BASE)*8;
  83.                 ++i;
  84.             }
  85.         //cout<<endl;
  86.         //result.sub_null();
  87.         return result;
  88.        
  89.     }
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement