[問題] 十進位數字轉換成任何進位的數字

看板Python作者 (楊呆貓)時間15年前 (2010/02/06 11:27), 編輯推噓2(2011)
留言13則, 5人參與, 最新討論串1/2 (看更多)
想把一個十進位數字轉成一個其他進位的數字 (從二到十六進位) 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 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.166.114

02/06 13:31, , 2F
sum = input
02/06 13:31, 2F

02/06 13:32, , 3F
while sum!= 0:
02/06 13:32, 3F

02/06 13:32, , 4F
b,sum = sum%base, sum/base
02/06 13:32, 4F

02/06 13:33, , 5F
print(b) #右到左
02/06 13:33, 5F

02/06 13:36, , 6F
好像差不多= =\ 沒看就推文了 拍謝
02/06 13:36, 6F

02/06 15:10, , 7F
這裡有個盲點, input會自動轉型成int,
02/06 15:10, 7F

02/09 15:00, , 8F
沒有看連結,不過可以試raw_input不會轉型成int
02/09 15:00, 8F

02/10 23:15, , 9F
我也是想到 int() 只不過輸入要是字串
02/10 23:15, 9F

02/19 19:16, , 10F
10以上的數字要換成英文字的話,不如自己做一個表
02/19 19:16, 10F

02/19 19:16, , 11F
table="0123456789abcde"
02/19 19:16, 11F

02/19 19:17, , 12F
number=""
02/19 19:17, 12F

02/19 19:18, , 13F
(迴圈中)number=table[sum%base]+number
02/19 19:18, 13F
文章代碼(AID): #1BRE6LMR (Python)
文章代碼(AID): #1BRE6LMR (Python)