为了好玩而制作一个大数库

主要观点:介绍了大整数(bignums 或 arbitrary-precision numbers)的概念及在计算机中的处理方式,以 Python 和 C 语言为例,详细阐述了实现大整数库的过程,包括表示大整数、比较大小、加法和乘法等操作。
关键信息

  • 64 位无符号整数的范围有限,bignums 可突破 CPU 对整数表示和运算的限制,仅受计算机内存限制。
  • Python 支持大整数无需使用库,而 C 需使用库。
  • 通过自定义的 BigNum 结构体来表示大整数,包括存储数字的数组和数组大小。
  • 实现了大整数的初始化、打印、比较、加法和乘法等功能的函数。
    重要细节
  • 在初始化 BigNum 时,将字符串数字的各位数字以逆序存储在数组中,并将 ASCII 值转换为数字值。
  • 比较大整数时先比较大小,再逐位比较。
  • 加法操作从最低位开始,逐位相加并处理进位。
  • 乘法操作使用类似小学乘法算法,逐位相乘并处理进位和去零操作。
  • 最后提到还有很多可以添加的功能,如负数值、类型转换等,并预告了下一篇关于优化大整数库的文章。
阅读 11
0 条评论