Python實現任意進製轉換

2021-09-16 21:20:05 字數 1031 閱讀 6204

這段**能夠實現任意進製的資料轉換,並且,超過四位的數字還會適用"_"進行分割,便於多位資料的閱讀。如果不需要進製轉換,只想每隔四位分割時不用設定inputradix和outputradix。

進製格式說明

b --> 二進位制

o --> 八進位制

d --> 十進位制

h --> 十六進製制

由於format十六進製製用x表示,所以**裡輸出為十六進製制時加了判斷手動換了一下:

# convert: 111111 --> 11_1111 & convert radix

def convert(numstring, inputradix=none, outputradix=none):

if inputradix is outputradix:

for i in range(len(numstring)-4, 0, -4):

numstring = numstring[:i] + "_" + numstring[i:]

return numstring

else:

outputradix = "x" if outputradix == "h" else outputradix

decimal = int(numstring, [inputradix])

numstring = str("").format(decimal)

return convert(numstring)

效果圖:

convert(「1111111」, 「b」, 「h」)

『7f』

convert(「1111111」, 「b」, 「d」)

『127』

convert(「255」, 「d」, 「h」)

『ff』

convert(「255」, 「d」, 「d」)

『255』

convert(「255」, 「d」, 「b」)

『1111_1111』

convert(「fffaaafb1」)

『f_ffaa_afb1』

實現任意進製轉化

問題描述 實現十進位制轉num換成r進製數,num和r從鍵盤讀入 假定num為int且 32767 num 32767,r為int且2 r 16 程式設計可用素材 printf input the num,r printf output n 程式的執行效果應類似地如圖1和圖2所示,圖1中的4095,...

實現任意進製(2 32)轉換

本程式借助10進製數為中介資料,實現任意進製數之間的相互轉換 2 36進製範圍 需要注意的是,數值範圍不可超出 long long int 所表示的範圍,即所輸入需要為正數,且要小於 2 63 1 64位處理器計算機 若需要負值資料,只需要處理第一位的符號位即可.還有一點,本程式的字母表示全部採用了...

C 實現任意進製的相互轉換

進製轉換是計算機內部時時刻刻都在進行活動,本篇文章也是進製轉換的演算法介紹,不過不同的是我想利用ascll編碼實現2到61之間任意進製的相互轉換,更大進製的表示方法只不過是十六進製制表示方法的延伸 用字母a到z表示整數10到35,字母a到z表示整數36到61。這樣就可以表示2到61之間的任意進製啦,...