作者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