题目

 

试题 基础练习 十六进制转八进制

 

资源限制

时间限制:1.0s   内存限制:512.0MB

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

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

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

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

样例输入
  2
  39
  123ABC

样例输出
  71
  4435274

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

 

实现(python)

 

 

 

 

 

 

1 n=int(input())
2 for i in range(n):
3     a=input()
4     print(oct(int(a,16))[2:])

 

知识点总结

1.✨python强大的进制转化函数👍

(行向列转换👇)

2

8

10

16

2

×

bin(int(n,8))

bin(int(n,10))

bin(int(n,16))

8

oct(int(n,2))

×

oct(int(n,10))

oct(int(n,16))

10

int(n,2)

int(n,2)

×

int(n,16)

16

hex(int(n,2))

hex(int(n,8))

hex(int(n,10))

×

注:

  • bin()  其他进制转化为2进制  ("b"是第二个字母所以转化为二进制是bin)
  • oct()  其他进制转化为8进制  ("oc"像一个倒着的8 所以转化为八进制是oct)
  • int()  其他进制转化为10进制 (10进制就是平时使用的类型用int就ok)
  • hex()  其他进制转化为16进制 ("16"是一个扎着辫子拿着剑(把1当成🗡)的男孩子 所以转化为16进制是hex)
  • 所有不是int的使用该函数时都要加上int转换,即先转化为10进制再转化为其他进制

此类函数是将读入的一个字符串转化为10进制,再转化为其他相应进制的字符串(!!因此使用该函数时不需要将读入的字符串强制转化为整形)

 希望大家不要嘲笑我奇奇怪怪的记忆方式(ノへ ̄、)...