C에서 Big Int를 구현하는 방법
소개
내장 데이터 유형인 long int에는 big int라는 사용자 정의 구현이 필요합니다. 다음은 C에서 큰 int 클래스를 설계하는 일반적인 접근 방식입니다.
데이터 구조
정수를 더 작은 숫자(일반적으로 한 자리 숫자 또는 작은 기본 값)의 벡터로 저장합니다. . 이는 임의 길이의 정수를 허용합니다.
template<class BaseType> class BigInt { typedef typename BaseType BT; protected: std::vector<BaseType> value_; };
산술 연산
추가:
이진수를 사용하여 = 연산자를 구현합니다. 추가 원칙. 요소를 반복하면서 필요에 따라 더하기 및 전달을 처리합니다.
template<class BaseType> BigInt<BaseType>& BigInt<BaseType>::operator+=(BigInt<BaseType> const& operand) { BT count, carry = 0; for (count = 0; count < std::max(value_.size(), operand.value_.size()); count++) { //... (carry handling omitted for brevity) } return *this; }
기타 연산(곱하기, 나누기 등)
기타 산술 연산에서는 구현된 연산을 활용합니다. = 및 - 연산자. 최적화된 구현을 위해 기존 알고리즘을 사용하는 것이 좋습니다.
기타 고려 사항
위 내용은 C에서 큰 정수 클래스를 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!