zoukankan      html  css  js  c++  java
  • python十进制数转换成任意进制数

      创建baseConverter行数接受一个进制数和2~16的基数作为参数,处理方式是将余数压入栈中,知道被处理的值为0.以2~10为基

    数时,最多只需要10个数字,因此0~9这10个整数够用。当基数超过10时,就会遇到问题。不能再直接使用余数,这是因为余数本身

    就是两位的十进制数。因此,需要创建一套数字来表示大于9的余数。  

      一种解决方法是添加一些字母字符到数字中,例如,十六进制使用10个数字以及前6个字母来代表16位数字。在代码中,为了实

    现这一方法,第3行创建了一个数字字符串来存储对应位置上的数字。0在位置0,1在位置1,A在位置10,B在位置11,依次类推。当

    从栈中移除一个余数时,它可以被用作访问数字下标,对应的数字会被添加到结果中。如果从栈中移除的余数是13,那么字母D将被

    添加到结果字符串的最后。

     1 from pythonds.basic import Stack
     2 def baseConverter(decNumber,base):
     3     digits = "0123456789ABCDEF"
     4 
     5     remstack = Stack()
     6 
     7     while decNumber > 0:
     8         rem = decNumber % base
     9         remstack.push(rem)
    10         decNumber = decNumber // base
    11 
    12     newString = ""
    13     while not remstack.isEmpty():
    14         newString = newString + digits[remstack.pop()]
    15 
    16     return newString
  • 相关阅读:
    火车进出站(POJ1363)
    字符串反转,栈模拟(ZOJ1151)
    模拟网页的浏览Stack(POJ1028)
    Codeforces Round #347 (Div.2)_B. Rebus
    Codeforces Round #347 (Div.2)_A. Complicated GCD
    BFS模板
    广搜破解密码(HDU1195)
    DFS+BFS(POJ3083)
    砍树,POJ(2665)
    快速幂取模,POJ(1995)
  • 原文地址:https://www.cnblogs.com/mtfan01/p/14443722.html
Copyright © 2011-2022 走看看