大数运算python代码实现
时间: 2024-07-12 09:01:27 浏览: 184
大数运算代码实现
在Python中,处理大数运算通常会利用内置的`int`类型和一些特定库,如`decimal`或`gmpy2`,它们提供了高精度计算功能。这里我会给出一些基本的大数运算代码示例:
**使用内置`int`类型(适用于较小范围)**:
```python
# 创建两个大数
num1 = int('12345678901234567890')
num2 = int('98765432109876543210')
# 加法、减法、乘法、除法
addition = num1 + num2
subtraction = num1 - num2
multiplication = num1 * num2
try:
division = num1 / num2 # Python 3,注意这里可能会抛出异常
except ZeroDivisionError:
division = '无法除以零'
print(f"加法: {addition}, 减法: {subtraction}, 乘法: {multiplication}, 除法: {division}")
```
**使用`decimal`模块(高精度计算)**:
```python
from decimal import Decimal
# 设置高精度模式
getcontext().prec = 100 # 设置小数点后位数
num1 = Decimal('12345678901234567890.12345')
num2 = Decimal('98765432109876543210.98765')
addition = num1 + num2
subtraction = num1 - num2
multiplication = num1 * num2
# `Decimal`除法不会自动截断,结果保留所有小数位
division = num1 / num2
print(f"加法: {addition}, 减法: {subtraction}, 乘法: {multiplication}, 除法: {division}")
```
**使用第三方库`gmpy2`(更高效,适合大数值)**:
```python
import gmpy2
num1 = gmpy2.mpz('12345678901234567890')
num2 = gmpy2.mpz('98765432109876543210')
addition = gmpy2.add(num1, num2)
subtraction = gmpy2.sub(num1, num2)
multiplication = gmpy2.mul(num1, num2)
# `mpz`类型默认为整数,无浮点除法
# 如果需要精确除法,可以用`divexact`函数
try:
division = gmpy2.divexact(num1, num2)
except ZeroDivisionError:
division = '无法除以零'
print(f"加法: {addition}, 减法: {subtraction}, 乘法: {multiplication}, 除法: {division}")
```
阅读全文