python基础--实现大数到任意进制的转换

问题

实现大数,远远超过python能表示的整数,比如有上百位整数,到2-16进制的转换.

解决思路

讲大数存在字符串,从大数的最高位开始,依次到最低位,每一位取出来转换成整数,对进制x进行整除和取余,将商保存在字符串中,将余数*10加上大数的下一位作为新的被除数,以此类推,直到大数取完为止。得到了整个大数一次的商和余数,再用迭代相除法,直到商为0停止,记录每次的余数,即可算出转换之后的进制。参考python十分简单实现十进制到任意进制的转换

代码

def f(n,x):

    #n为待转换的大数,全部是整数,并且用字符串保存,x为进制,取值为2-16
    a=[0,1,2,3,4,5,6,7,8,9,'A','b','C','D','E','F']
    b=[]
    while True:
        jinwei=0
        shang=''
        for i in n:
            beichushu=int(i)+jinwei*10

            s=beichushu//x
            y=beichushu%x
            shang=shang+str(s)
            jinwei=int(y)
        b=b+[jinwei]

        if int(shang)==0:
            break
        n=shang
    b.reverse()
    for i in b:
        print(a[i],end='')
    print('('+str(x)+'x)')

f('10241111111111111111111111111111111111',16)

执行结果

7b45DC2E7C081bAAE2CD8b5C71C71C7(16x)

来自:鉏飞祥,安徽大学

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: 7-6 jmu-python-不同进制 在计算机中,字可以用不同的进制表示。常见的进制有二进制、八进制、十进制和十六进制。 二进制是计算机中最基本的进制,只有和1两个字。八进制是以8为基进制字由-7组成。十进制是我们平时使用的进制字由-9组成。十六进制是以16为基进制字由-9和A-F组成。 在Python中,可以使用不同的前缀来表示不同的进制。二进制使用b或B前缀,八进制使用o或O前缀,十六进制使用x或X前缀。 例如,二进制1011可以表示为b1011或B1011,八进制23可以表示为o23或O23,十六进制AB可以表示为xAB或XAB。 在Python中,可以使用int()函将不同进制的字符串转换为十进制,也可以使用bin()、oct()、hex()函将十进制转换为二进制、八进制、十六进制字符串。 ### 回答2: 7-6 jmu-python-不同进制 在计算机科学中,进制是十分重要的基础概念,同时也是一个容易引起误解的容易混淆的概念。所谓进制,就是用不同的符号来表示字的位置、权值和位值。在我们日常使用中,最常见的是十进制。而在计算机中,除了十进制之外,还可以使用二进制、八进制和十六进制等不同的进制来表示字。 二进制(Binary) 二进制是计算机中最基本的进制,只有0和1两个码,这是由于计算机中采用的是模拟现象来进行信息存储和处理。因此,只需要用0和1两种状态进行表示即可。例如,8位二进制00000000表示字0,11111111表示字255。 八进制(Octal) 八进制是一种使用8个字来进行编码的进制。在计算机科学中,八进制通常被用于Unix和Linux文件系统中的文件访问权限描述。在八进制中,字由0到7的8个码组成。例如字78,在八进制中写作116(因为7×8的一次方加上8的零次方等于116),这就是为什么它被称为八进制。八进制一般使用前缀0来表示。 十六进制(Hexadecimal) 十六进制是一种使用16个字来进行编码的进制。在计算机科学中,十六进制通常被用于颜色编码和内存地址表示。在十六进制中,字由0到9和字母A到F(或a到f)的16个码组成。为了便于区分,通常采用前缀0x来表示十六进制。例如字256,在十六进制中写作0x100(因为256等于16的二次方)。 综上所述,不同进制在计算机科学中有各自的应用,同时也提供了不同的方式来表示字。对于程序员来说,熟练掌握各种进制的概念和转换方法具有至关重要的意义。 ### 回答3: 7-6 jmu-python-不同进制 在计算机科学中,我们经常使用不同的进制来表达字和据。在Python中,我们可以使用不同的进制来表示整和浮点。本文将介绍在Python中使用的不同进制类型和如何将它们转化成十进制。 一、二进制进制是计算机语言中的基本进制。二进制由0和1表示,是由计算机电路中硬件元件关系(电子电路)的最小单位表示的信息。在Python中,我们可以使用前缀“0b”来表示二进制,例如: >>> a = 0b1010 >>> print(a) 10 >> b = 0b1101 >> print(b) 13 在上面的例子中,我们使用“0b”前缀来表示二进制,然后将其赋值给变量a和变量b。最后,我们使用print()函输出了它们在十进制下的值。 二、八进制进制是由0~7字组成的字系统。在Python中,我们可以使用前缀“0o”来表示八进制,例如: >>> a = 0o10 >>> print(a) 8 >> b = 0o17 >> print(b) 15 在上面的例子中,我们使用“0o”前缀来表示八进制,然后将其赋值给变量a和变量b。最后,我们使用print()函输出了它们在十进制下的值。 三、十六进制 十六进制是由0~9和字母A~F组成的字系统。在Python中,我们可以使用前缀“0x”来表示十六进制,例如: >>> a = 0x10 >>> print(a) 16 >> b = 0xAB >> print(b) 171 在上面的例子中,我们使用“0x”前缀来表示十六进制,然后将其赋值给变量a和变量b。最后,我们使用print()函输出了它们在十进制下的值。 四、十进制进制是我们最常使用的字系统,由0~9字组成。在Python中,我们可以直接使用整或浮点来表示十进制,例如: >>> a = 10 >>> print(a) 10 >> b = 3.14 >> print(b) 3.14 在上面的例子中,我们直接使用整10和浮点3.14来表示十进制,然后通过print()函输出它们的值。 五、不同进制之间的转化 如果我们想要将一个二进制、八进制、十六进制转化成十进制,我们可以使用int()函将其转化成整,例如: >>> a = 0b1010 >>> print(a) 10 >> b = 0o17 >> print(b) 15 >> c = 0xAB >> print(c) 171 >> d = int('1010', 2) >> print(d) 10 >> e = int('17', 8) >> print(e) 15 >> f = int('AB', 16) >> print(f) 171 在上面的例子中,我们使用int()函将二进制“0b1010”转化成十进制10,将八进制“0o17”转化成十进制15,将十六进制“0xAB”转化成十进制171。我们也可以使用int()函对字符串进行转化,其中第二个参表示原来字的进制。 综上所述,Python中的不同进制可以用来表示整和浮点,它们之间可以互相转化。掌握这些知识对于学习计算机科学领域的相关课程有很大的帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值