python刷题-进制转换

DaLongggggg 等级 272 0 0

十六进制转八进制

问题描述   给定n个十六进制正整数,输出它们对应的八进制数。

输入格式   输入的第一行为一个正整数n (1<=n<=10)。   接下来n行,每行一个由09、大写字母AF组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。

输出格式   输出n行,每行为输入对应的八进制正整数。

  【注意】   输入的十六进制数不会有前导0,比如012A。   输出的八进制数也不能有前导0。

样例输入   2   39   123ABC

样例输出   71   4435274

  【提示】   先将十六进制数转换成某进制数,再由某进制数转换成八进制。

n = eval(input())
for i in range(n):
    s = input()
    m = oct(int(s, 16))
    print(m[2:])

int(s,16)输入一个16进制的字符串s 因为用hex oct 函数进行转换的时候输出的字符串会有Ox的标识 所以输出时要对字符串进行切割 [2:]把前两位切掉即可 ·······························································································································································

十六进制转十进制

问题描述   从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。   注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。 样例输入 FFFF 样例输出 65535

print(int(input(), 16))

直接输入16进制数int转型输出即可 ·······························································································································································

十进制转十六进制

问题描述   十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满16进1,所以十进制数16在十六进制中是10,而十进制的17在十六进制中是11,以此类推,十进制的30在十六进制中是1E。   给出一个非负整数,将它表示成十六进制的形式。 输入格式   输入包含一个非负整数a,表示要转换的数。0<=a<=2147483647 输出格式   输出这个整数的16进制表示 样例输入 30 样例输出 1E

print('{:X}'.format(int(input())))

这里用到format函数对输出的字符串进行格式化
题目给的样例输出为1E为大写则输出时应该用{:X} x即输出小写

python中format函数

收藏
评论区