编程实现将一个N进制数转换成M进制数
生活随笔
收集整理的這篇文章主要介紹了
编程实现将一个N进制数转换成M进制数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
問題:編程實現將一個N進制數轉換成M進制數。(c/c++、Java、Javascript、C#、Python)
1、Python 手寫算法版
def conversion_num(num, src, dest):rtn = ''# 1、校驗源和目標是否相同if src == dest:rtn = num# 2、轉成10進制#if src != 10:num_str = str(num)num_str = num_str[::-1]exe_num = 0dec_num = 0for num_char in num_str:# 十六進制處理if num_char == 'A':num_char = '10'elif num_char == 'B':num_char = '11'elif num_char == 'C':num_char = '12'elif num_char == 'D':num_char = '13'elif num_char == 'E':num_char = '14'elif num_char == 'F':num_char = '15'num_int = int(num_char)if exe_num == 0:dec_num += num_intelse:dec_num += src ** exe_num * num_intexe_num += 1num = dec_num# 3、轉成目標進制if dest == 10:rtn = numelse:num = int(num)while True:divisor = num // destremainder = num % dest# 十六進制處理if remainder == 10:remainder = 'A'elif remainder == 11:remainder = 'B'elif remainder == 12:remainder = 'C'elif remainder == 13:remainder = 'D'elif remainder == 14:remainder = 'E'elif remainder == 15:remainder = 'F'rtn = str(remainder) + rtnif divisor <= 0:breakelse:num = divisor# 4、處理空的字符串if rtn == '':rtn = '0'return rtnnew_num = conversion_num('111111', 2, 16) print(new_num)?2、python內部方法版:
def conversion_num(num, src, dest):rtn = ''# 1、校驗源和目標是否相同if src == dest:rtn = num# 2、轉成10進制#if src != 10:dec_num = 0if src == 2:dec_num = int(num, 2)elif src == 8:dec_num = int(num, 8)elif src == 16:dec_num = int(num, 16)num = dec_num# 3、轉成目標進制if dest == 10:rtn = numelse:if dest == 2:rtn = bin(num)elif dest == 8:rtn = oct(num)elif dest == 16:rtn = hex(num)# 4、處理空的字符串if rtn == '':rtn = '0'return rtnnew_num = conversion_num('111111', 2, 16) print(new_num)?3、
?
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的编程实现将一个N进制数转换成M进制数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java 解析XML的几种方式:DOM、
- 下一篇: JavaScript 之 高级程序设计