作者Blocat (楊呆貓)
站內Python
標題[問題] 十進位數字轉換成任何進位的數字
時間Sat Feb 6 11:27:15 2010
想把一個
十進位數字轉成一個
其他進位的數字 (從二到十六進位)
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
2F:推 Sforever:sum = input 02/06 13:31
3F:→ Sforever:while sum!= 0: 02/06 13:32
4F:→ Sforever: b,sum = sum%base, sum/base 02/06 13:32
5F:→ Sforever: print(b) #右到左 02/06 13:33
6F:→ Sforever:好像差不多= =\ 沒看就推文了 拍謝 02/06 13:36
7F:→ AndCycle:這裡有個盲點, input會自動轉型成int, 02/06 15:10
8F:→ PCIT:沒有看連結,不過可以試raw_input不會轉型成int 02/09 15:00
9F:推 bobhsiao:我也是想到 int() 只不過輸入要是字串 02/10 23:15
10F:→ apua:10以上的數字要換成英文字的話,不如自己做一個表 02/19 19:16
11F:→ apua:table="0123456789abcde" 02/19 19:16
12F:→ apua:number="" 02/19 19:17
13F:→ apua:(迴圈中)number=table[sum%base]+number 02/19 19:18