如何在 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中文网其他相关文章!