首页 > 试题广场 >

进制转换

[编程题]进制转换
  • 热度指数:35590 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
将一个长度最多为30位数字的十进制非负整数转换为二进制数输出。

输入描述:
多组数据,每行为一个长度不超过30位的十进制非负整数。
(注意是10进制数字的个数可能有30个,而非30bits的整数)


输出描述:
每行输出对应的二进制数。
示例1

输入

0
1
3
8

输出

0
1
11
1000

python

while True:
    try:
        print(bin(int(input())).replace('0b',''))
    except:
        break
发表于 2021-03-19 17:22:49 回复(0)
while True:
    try:
        a = int(input())
        b = bin(a)
        print(format(eval(b),'b'))
    except:
        break

发表于 2020-12-04 09:47:34 回复(0)
print(bin(int(input())).replace('0b', ''))

发表于 2020-10-26 14:34:19 回复(0)
while True:
    try:
        n = int(input())
        print(bin(n)[2:])
    except:
        break

发表于 2020-03-09 22:16:37 回复(0)
try:
    while True:
        print(bin(int(input())).replace('0b',''))
except Exception:
    pass
编辑于 2018-10-09 10:28:39 回复(2)

python 解法


def baseN(num, b):
    return ((num == 0) and "0") or (baseN(num // b, b).lstrip("0") + "0123456789abcdefghijklmnopqrstuvwxyz"[num % b])
while True:
    try:
        a,b=map(int,input().split())
        c=input()
        val=int(c,a)
        print(baseN(val,b))
    except:
        break

这道题一定要懂清楚题目意思,有点绕。。

要先把输入的M进制的数转为十进制,再根据要求转为N进制。

python的int函数可以方便的实现将任意进制的数转为十进制。将十进制转为N进制,由baseN函数实现。

这种解法代码量较少。

编辑于 2017-10-16 16:03:14 回复(0)
#M进制--10进制--N进制
voc=['0','1','2','3','4','5','6','7','8','9',
     'a','b','c','d','e','f','g','h','i','j',
     'k','l','m','n','o','p','q','r','s','t',
     'u','v','w','x','y','z']
def f(x,n): #10进制转换为n进制,n<=36
    p,q=x,0
    a=[]
    while p!=0:
        p,q=p//n,p%n
        a.append(voc[q])
    return ''.join(a[::-1])
while 1:
    try:
        m,n=list(map(int,input().split()))
        x=int(input(),m) #m进制转换为10进制
        print(f(x,n))
    except:
        break

发表于 2017-09-03 16:20:00 回复(0)