CS341 Study Guide - Arbitrary-Precision Arithmetic

16 views7 pages
21 Dec 2014
Course
Professor

Document Summary

// class class bignum{ public: bignum(){ size = 1; digits = new short[size]; digits[0] = 0; //if given impossible range, return 0 if(len <= 0){ size = 1; digits = new short[1]; digits[0] = 0; }else{ size = len; digits = new short[size]; for(int i = 0; i < len; i++){ digits[i] = n. digits[pos+i]; positive = true; //copy constructor bignum(const bignum& n){ positive = n. positive; size = n. size; digits = new short[size]; for(int i = 0; i < size; i++){ digits[i] = n. digits[i]; //swap positive = tmp. positive; size = tmp. size; short* tmp_digit = digits; digits = tmp. digits; tmp. digits = tmp_digit; return (*this); ~bignum(){ if(size > 0 && digits){ delete [] digits; bool positive; int size; //least significant at index 0, most significant at size-1 short* digits; //can hold 0-9999. // functions void pencil(); bignum karatmult(bignum& lhs,bignum& rhs); bignum subnum(bignum& lhs,bignum& rhs); bignum pencilmult(bignum& lhs,bignum& rhs); ostream& operator<