python 大数字算法_Python编程:以String方式进行大数计算

本文介绍了如何使用Python实现大数计算,通过输入两个任意长度的数字字符串,支持加、减、乘操作。代码基于笔算逻辑,可处理超出int和long范围的大数。示例展示了不同运算的例子。
摘要由CSDN通过智能技术生成

众所周知,计算机中int用32位表示,可表示范围0 - 2^32,约42亿, long用64位表示,可表示范围为0-2^64 约184亿亿。如果运算是超出这个范围,就会溢出,即无法获取正确的计算结果。这时候就需要一种特殊的计算程序。本文通过Python语言,实现了一个简单的大数计算程序:通过输入两个任意长度的由数字组成的字符串,进行+ - * /计算,计算结果也是一个字符串。

1.代码 实现原理很简单,就是把我们平时笔算的过程写成了程序。由于输入是字符串,计算过程完全是笔算的逻辑,所以可支持任意长度的数据进行运算。

2.代码

代码如下:

bigdata_calc.py

#! /usr/bin/python

# -*- coding: utf-8 -*-

import sys

def get_10(c):

return ord(c)-ord('0')

def add_one_bit(n1,n2,n3=0):

a = get_10(n1)

b = get_10(n2)

sum = a+b+n3

yu = sum%10

shang = (sum-yu)/10

return str(yu),shang

def add(n1,n2):

l1=len(n1)

l2=len(n2)

s1 = n1

s2 = n2

if l1>l2:

s1 = n2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值