十六进制转八进制

发布于 2022-09-01 05:40:33 字数 357 浏览 8 评论 0

问题描述
  给定n个十六进制正整数,输出它们对应的八进制数。
输入格式
  输入的第一行为一个正整数n (1<=n<=10)。
  接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。
输出格式
  输出n行,每行为输入对应的八进制正整数。
注意
  输入的十六进制数不会有前导0,比如012A。
  输出的八进制数也不能有前导0。
样例输入
2
39
123ABC
样例输出
71
4435274
提示
  先将十六进制数转换成某进制数,再由某进制数转换成八进制。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

呢古 2022-09-08 05:40:33

简单的方法:十六进制转为二进制再转为八进制

可以先把十六进制转为二进制
123ABC -> 0001 0010 0011 1010 1011 1100
然后把二进制序列三个一组(从最低位看起)的看
0001 0010 0011 1010 1011 1100 -> 000 100 100 011 101 010 111 100
再把三个一组的二进制序列转换为八进制
000 100 100 011 101 010 111 100 -> 04435274
舍弃掉最高位的零即可

二进制和十六进制、八进制有对应关系

二进制十六进制
00000
00011
00102
00113
01004
01015
01106
01117
10008
10019
1010A
1011B
1100C
1101D
1110E
1111F
二进制八进制
0000
0011
0102
0113
1004
1015
1106
1117

ps 我觉得这种级别的问题不应该出现在在这个社区。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文