Re: [問題] 十進位數字轉換成任何進位的數字
※ 引述《Blocat (楊呆貓)》之銘言:
: 想把一個十進位數字轉成一個其他進位的數字 (從二到十六進位)
: google一下好像沒有函式可做到這件事情
: 於是自己來做
: 但覺得自己的方法可能不是最漂亮的
: 想問板上的大大們是否有更好的方法
: 謝謝!
: 以下是程式碼
: number = []
: base = input("Please enter a number (2~16): ")
: sum = input()
: while (sum != 0):
: if (sum % base) <= 9:
: number.append(str(sum % base))
: else:
: number.append(chr(sum % base + 55)) # 把 10 以上的數字轉
: sum = sum / base
最近無聊在自學pyhone 就用自己的想法寫了一個
n=int(raw_input("n:"))
m=int(raw_input("carry:"))
s=str()
while n>0:
i= n % m
if i>9: mm=str(chr(i+55))
else: mm=str(i)
s=mm+s
n = n // m
print s
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.166.93.19
轉換 X進位變成 X進位 (X=2~37)
def work():
s=str()
abc=int()
x=raw_input("Number:")
y=int(raw_input("OldCarry:"))
m=int(raw_input("NewCarry:"))
for Ai in range(1,len(x)+1):
od=ord(str(x)[Ai-1:Ai])-87
if od <0:od=od+32
if str(x)[Ai-1:Ai].isalpha():
abc=(od)*(y**(len(x)-Ai))+abc
else:
abc=int(str(x)[Ai-1:Ai])*(y**(len(x)-Ai))+abc
while abc>0:
iu= abc % m
if iu>9:
mm=str(chr(iu+55))
else:
mm=str(iu)
s=mm+s
abc = abc // m
return s
while True:
print work()
※ 編輯: icps 來自: 118.166.145.157 (01/17 18:27)
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):