精华内容
下载资源
问答
  • python任意进制转换代码
    2021-01-25 18:15:21

    需求

    将一个数字 从任意进制 转换为 任意进制 的数值。

    实现

    Python2

    
    def baseconvert(number, fromdigits, todigits):
        if str(number)[0] == '-':
            number = str(number)[1:]
            neg = 1
        else:
            neg = 0
        # make an integer out of the number
        x = long(0)
    
        for digit in str(number):
            x = x*len(fromdigits) + fromdigits.index(digit)
    
        # create the result in base 'len(todigits)'
        res = ""
        while x > 0:
            digit = x % len(todigits)
            res = todigits[digit] + res
            x /= len(todigits)
        if neg:
            res = "-"+res
        return res
    
    //将8从10进制转为二进制
    print(baseconvert(8, "0123456789","01"))
    //将100从10进制转为八进制
    print(baseconvert(100, "0123456789","01234567"))
    

    Python3

    需要修改x = long(0)x=0
    原因:Python3.x中没有long类型,只有int类型。

    同时修改x /= len(todigits)x //= len(todigits)
    原因:python3使用//作为整除符号

    更多相关内容
  • 记得大学时代,参加学校举行的编程大赛,其中有道题是:编写一函数,实现十进制转换成十六进制。看起来非常简单的一道题,最后竟然没有实现,想想都觉得惭愧啊,回去网上一搜,那是相当的easy的事情;时隔五六年了,...

    记得大学时代,参加学校举行的编程大赛,其中有道题是:

    编写一函数,实现十进制转换成十六进制。

    看起来非常简单的一道题,最后竟然没有实现,想想都觉得惭愧啊,回去网上一搜,那是相当的easy的事情;时隔五六年了,工作中一直是用java,最近学习python,所以突然想到这个问题,就用python来实现这道题。下面使用两种方法分别实现:

    一、循环

    defdecimalToNBaseByNormal(decimalVar, base):

    tempList=[]

    temp=decimalVar

    i=0while (temp >0):

    ord= temp %baseif (ord > 9): #如果余数大于9,则以字母的形式表示

    ord = chr(65 + (ord - 10)) #把数字转换成字符

    tempList.append(ord)

    temp= int(temp /base)

    i= i + 1tempList.reverse();#print(tempList)

    binary = ""

    for j inrange(len(tempList)):

    binary= binary +str(tempList[j]);print("the decimal is: %d and after convering by %d base is %s"%(decimalVar, base, binary))

    里面要注意的一点就是,当余数大于9时,要转换成字符表示;用循环的方法实现,思路非常清晰,至于转换算法这里就不多介绍,可以看参考[1];在该实现过程中碰到的问题是,怎么把数字转换成字符;当然首先是ascii对应表,转换方法如下:

    ord = chr(65 + (ord - 10))

    其中,ord为余数,转换后就对应ascii从A开始的字符,python 3.3中可以使用chr函数直接转换成字符

    二、递归

    defdecToNBaseByRecursion(dec, base):if (dec ==0):returndecToNBaseByRecursion(int(dec/base), base)

    ord= dec %baseif (ord > 9):

    ord= chr(65 + (ord - 10))

    sys.stdout.write(str(ord))

    递归方法,实现使得代码非常简洁,但理解起来不是那么简单;递归实现过程中,碰到一个输出问题,python 3.3中,函数print默认自动换行,网上后面加逗号的方法,试了无效,所以直接使用stdout输出,这就要在使用import sys。

    主代码:

    importsysdefmain():

    decimal= eval(input("please input the decimal for converting binary:"))

    base= eval(input("please input base:"))

    decimalToNBaseByNormal(decimal, base)

    decToNBaseByRecursion(decimal, base)

    python版本 3.3

    上面的链接是code.google,不翻是上不去的,我朝”伟大的杰作“啊!

    python刚入门,只考虑运行结果,没有考虑任何性能问题,有不正的地方,请指正!

    当然python里面有更简单的函数直接输出:

    二进制 bin()

    八进制 oct()

    十六进制 hex()

    未完待续:任意进制转换成十进制

    展开全文
  • 写在前面: 最近在学习数据分析方向的课程,开始系统地学习Python,越来越对“人生苦短,故我用python”这句话有感触了,Python在某些方面确实有其过其他语言之处。...此外用Python进制转换的优势有至少
  • Python实现任意进制之间的转换

    千次阅读 2020-12-11 19:32:15
    在编程过程中我们经常需要转换进制,虽然Python已经内置了常用进制转换函数,如int,bin,hex,oct;但是如果我们需要转换成其他进制怎么办呢?我们知道,十进制转换成二进制时,使用“除2取余,逆序排列”即可。二...

    在日常生活中我们频繁使用到数学的进制,如季度逢三进一,星期逢七进一;生肖、小时使用12进制,每天使用24进制,每月使用30进制,分秒使用60进制,一年使用360进制等等;在编程过程中我们经常需要转换进制,虽然Python已经内置了常用进制转换函数,如int,bin,hex,oct;但是如果我们需要转换成其他进制怎么办呢?

    我们知道,十进制转换成二进制时,使用“除2取余,逆序排列”即可。二进制转换成十进制时按权展开,即可得到十进制。类似地可以实现十进制转换成任意进制,任意进制也可以转换成十进制;通过十进制进行中转,即可实现任意进制数之间的转换了。

    下面实现一个20进制内的任意转换(PS:需要转换成更多的进制,只需添加相应的字符即可)

    #将十进制数转换成任意进制20进制以内,任意进制只需添加不同的符号即可

    def decimalToAny(num,n):

    baseStr = {10:"a",11:"b",12:"c",13:"d",14:"e",15:"f",16:"g",17:"h",18:"i",19:"j"}

    new_num_str = ""

    while num != 0:

    remainder = num % n

    if 20 > remainder > 9:

    remainder_string = baseStr[remainder]

    elif remainder >=20:

    remainder_string = "("+str(remainder)+")"

    else:

    remainder_string = str(remainder)

    new_num_str = remainder_string+new_num_str

    num = num / n

    return new_num_str

    #将任意进制数转换成十进制

    def anyToDecimal(num,n):

    baseStr = {"0":0,"1":1,"2":2,"3":3,"4":4,"5":5,"6":6,"7":7,"8":8,"9":9,

    "a":10,"b":11,"c":12,"d":13,"e":14,"f":15,"g":16,"h":17,"i":18,"j":19}

    new_num = 0

    nNum = len(num) - 1

    for i in num:

    new_num = new_num  + baseStr[i]*pow(n,nNum)

    nNum = nNum -1

    return new_num

    目前只实现了简单的功能,后续慢慢完善;欢迎大家探讨!

    展开全文
  • Python实现的进制转换器#1、十六进制以内实数任意进制任意进制的转换 #2、小数位数超过十位保留十位小数 #3、包含负数的转换(是数值的转换而不是补码) #4、能够实现更高进制的转换:直接增加waitNumber中的字母...
  • 根据辗转相除法进行十进制数字的计算转换进制
    def radix_any():
        decimal_number = int(input("请输入10进制数"))
        asciil = int(input("请输入想转换成的进制"))
    
        if asciil <= 0:  # 进制为负数时提醒
            print("请输入正确进制数")
        elif decimal_number > asciil:
            k = ""
            while decimal_number >= asciil:  # 目标数大于进制数时可以进行运算
                quotient = int(decimal_number // asciil)  # 取整数商
                remainder = (decimal_number - quotient * asciil)  # 取余
                decimal_number = quotient  # 将上一步整数商赋值给dacimal_number进行求商取余
                k = k + str(remainder)
                if decimal_number < asciil:
                    result = (k + str(decimal_number))
                    print(result[::-1])  # 翻转字符串得到结果
        elif asciil > decimal_number > 0:  # 目标数小于进制数且大于0时,结果为其本身
            print(decimal_number)
        elif decimal_number < 0:  # 目标数小于0时(为负数)
            c = str(decimal_number).replace("-", "")  # 将负号“-”减去
            k = ""
            decimal_number = int(c)
            while decimal_number >= asciil:  # 执行正整数进制转换程序
                quotient = int(decimal_number // asciil)  # 取整数商
                remainder = (decimal_number - quotient * asciil)  # 取余
                decimal_number = quotient  # 将上一步整数商赋值给a进行求商取余
                k = k + str(remainder)
                if decimal_number < asciil:
                    result = (k + str(decimal_number)) + "-"  # 追加“-”号
                    print(result[::-1])  # 翻转字符串得到结果

    展开全文
  • Python进制转换大全详解

    千次阅读 2022-01-22 17:30:22
    8进制转换为10进制:int(x,8) 2进制转换为10进制:int(x,2) 使用bin(x) ,oct(x) 或hex(x) 转换: bin(x)转换为二进制: oct(x)转换为八进制: hex(x)转换为十六进制: 使用format() 转换 format(x,'b')转换为...
  • python任意进制转换

    2020-11-21 01:22:02
    原博文2019-03-17 22:08 −## python任意进制转换 ```python import string def module_n_converter(q, s, base=None): """ 将自然数按照给定的字符串转换为base进制的字符串 :param q: 自然数 :param s: 字符串 ......
  • 任意进制转换(示例代码)

    千次阅读 2021-01-29 08:09:20
    1,十进制转二进制#includeintmain(){int i=0,n,a[32];//a[32]表示数组a里面有32个元素 printf("请输入一个十进制整数:");...}printf("十进制整数转换为二进制数是:");for(i--;i>=0;i--)//i自减直到i<...
  • Python实现进制转换

    2021-10-28 22:23:51
    废话不多说了,直接上代码 ##输入的非限制数字会被报错 ##while True语句写这里是为了达到死循环的目的 ##因此不要break ##3就不限制了,写不出来 ##只是代码长 实际有手就行,初学者都能打…… while True: print...
  • Python 实现进制转换 一、导言 导语: 在计算机进行数据交换时,常常会有一个进制转换的过程,我们知道计算机只认0 和 1.在内存系统中,基本基于二进制进行运算的,但是有时候数据过于庞大,为了方便存储管理,...
  • # 十进制转化成任意进制 from pythonds.basic import Stack # 引入栈 def base_converter(dec_number, base): # 传入十进制数,和要转换成的进制 digits = "0123456789ABCDEF" rem_stack = Stack() while dec_number...
  • 一、python自带函数bin()、oct()、hex() 局限性:只能将10进制转成2、8、16进制,无法实现转成其他进制数。 将十进制decimal system...二、自定义函数,实现十进制转任意进制数 假设有这么一道题: 请写出一个能将任
  • Python进制转换

    2022-04-26 10:54:51
    Python进制转换进制转换为二进制十进制转换为八进制十进制转换为十六进制附录 这里以十进制数10为例,转换为其他进制。 十进制转换为二进制 # 初始化整数10 num = 10 # 将整数10转换为二进制表示 print(bin(num)) ...
  • python进制转换函数

    千次阅读 2021-01-14 18:38:06
    一:二,八,十六进制转十进制 注意2进制对应的数值范围只能是0和1,超过范围会报错,8进制和16进制同理。 print(int('100',2)) #二进制转十进制,int('20',2) 会报错 print(int('30',8)) #八进制转十进制,int('80'...
  • python16进制转换为10进制

    万次阅读 2021-03-17 12:28:14
    python将十六进制转为十进制数字的程序怎么写把十六进制的字串转为十... print int('ff', 16) 255 把十进制数字转换为以十六进制表示之字串,可调用内置的hex()函数: Python代码 >>> print hex(255) 0xff...
  • 代码如下: # -*- coding = utf-8 -*- # @Time : 2021/1/23 16:10 # @Author : Suage # @File : SysConvert.py from threading import Lock class StringBuilder: def __init__(self, content=None, convert_way=...
  • python实现十进制转化为任意进制

    千次阅读 2022-06-29 01:29:40
    python实现十进制数转换为十六以内的任意进制数,而且是极简版。
  • Python 实现进制转换一、导言导语:在计算机进行数据交换时,常常会有一个进制转换的过程,我们知道计算机只认0 和 1.在内存系统中,基本基于二进制进行运算的,但是有时候数据过于庞大,为了方便存储管理,计算机会...
  • 其中就用了python进制转换的问题,写下来以,备忘。之所以要写下来,而不是转发,是因为很多人写的比较啰嗦,我只把重点写出来就可以了,其他全部去掉。 一共用到四个函数:bin()、oct()、int()、hex() int():...
  • 提取码:tha8 进制转换计算工具含源文件 导入模块 import tkinter from tkinter import * import tkinter as tk from tkinter.ttk import * 整个框架的主结构 root = Tk() root.title('贱工坊-进制转换计算'...
  • python 把16进制字符串转化为16进制数字, 比如‘0x小编不希望有一天发现自己是为了别人活,小编愿意承担后果,就算偶尔寂寞甚至孤独而终,小编都能接受。十六进制的ascii码怎么转成十六进制呢?(python)如何让python...
  • 效果代码1.字母和数字转换A↔10,B↔11,...,Z↔35A↔10,B↔11,...,Z↔35A↔10,B↔11,...,Z↔35def trans(num):# 输入数字换为字母或输入字母转换为数字if type(num) == int:if num < 10:return str(num)...
  • 输入一个8进制数,将其转换为10进制后输出。例如:输入:101,输出:65 value = "101" result = int(value, 8) print(result) 同理 若是要将其他进制的数据转为10进制输出 只需要将 int(value, ** ) 把int 改为(value...
  • 不算是技术工作者还是普通文员,大家都逐步开始学习python,毫无疑问,python现在已经成为热门语言了。...下面就是在实际工作中遇到的一个问题,把一个文本里面的十六进制数据转换为十进制。于是写了个p...
  • defencode_b64(n):table='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_'result=[]temp=nif0==temp:result.append('0')else:while0result.append(table[temp%64])temp/=64retu...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 36,622
精华内容 14,648
热门标签
关键字:

python任意进制转换代码

友情链接: ccbvc.zip