Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- BN BN::operator+(BN & second_number)
- {
- unsigned long int R;
- unsigned short k=0;
- int i;
- if(*this>=second_number)
- {
- if (second_number.len==1&&second_number.number[0]==0)
- return *this;
- BN result(len+1,0);
- result.len=len+1;
- for(i=0;i<second_number.len;++i)
- {
- R=number[i]+second_number.number[i]+k;
- result.number[i]=BASE(R);
- //cout<<hex<<result.number[i]<<" ";
- k=R>>sizeof(BASE)*8;
- }
- {
- while(i<len)
- {
- R=number[i]+k;
- result.number[i]=BASE(R);
- //cout<<hex<<result.number[i]<<" ";
- k=R>>sizeof(BASE)*8;
- ++i;
- }
- while(i<result.len)
- {
- R=result.number[i]+k;
- result.number[i]=BASE(R);
- //cout<<hex<<result.number[i]<<" ";
- k=R>>sizeof(BASE)*8;
- ++i;
- }
- }
- //result.sub_null();
- //cout<<result<<endl;
- //cout<<endl;
- return result;
- }
- else
- {
- if (len==1&&number[0]==0)
- return second_number;
- BN result(second_number.len+1,0);
- result.len=second_number.len+1;
- for(i=0;i<len;++i)
- {
- R=number[i]+second_number.number[i]+k;
- result.number[i]=BASE(R);
- //cout<<hex<<result.number[i]<<" ";
- k=R>>sizeof(BASE)*8;
- }
- while(i<second_number.len)
- {
- R=second_number.number[i]+k;
- result.number[i]=BASE(R);
- //cout<<hex<<result.number[i]<<" ";
- k=R>>sizeof(BASE)*8;
- ++i;
- }
- while(i<result.len)
- {
- R=result.number[i]+k;
- result.number[i]=BASE(R);
- //cout<<hex<<result.number[i]<<" ";
- k=R>>sizeof(BASE)*8;
- ++i;
- }
- //cout<<endl;
- //result.sub_null();
- return result;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement