這段**能夠實現任意進製的資料轉換,並且,超過四位的數字還會適用"_"進行分割,便於多位資料的閱讀。如果不需要進製轉換,只想每隔四位分割時不用設定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之間的任意進製啦,...