如何在C 中實作Big Int
簡介
使用大於內建資料類型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中文網其他相關文章!