当前位置:网站首页>菜菜的刷题日记 | 蓝桥杯 — 十六进制转八进制(纯手撕版)附进制转换笔记
菜菜的刷题日记 | 蓝桥杯 — 十六进制转八进制(纯手撕版)附进制转换笔记
2022-04-23 06:19:00 【猿知】
系列索引:菜菜的刷题日记 | 被LeetCode用Python狂虐的那段日子
万万没想到啊,回老家过年断更的几天之后,我会因为无聊在除夕这天做了会儿题,然后写篇题解。
【题目】
题目链接:http://lx.lanqiao.cn/problem.page?gpid=T51
【我的代码】
我的思路是:首先十六进制
转二进制
,然后再转八进制
,这里直接创建两个字典用来存放数据。代码需要注意二进制是倒着匹配的,而且当不满三个数时需要补0,其他的大家应该都能看明白。
book1 = {
'0': '0000',
'1': '0001',
'2': '0010',
'3': '0011',
'4': '0100',
'5': '0101',
'6': '0110',
'7': '0111',
'8': '1000',
'9': '1001',
'A': '1010',
'B': '1011',
'C': '1100',
'D': '1101',
'E': '1110',
'F': '1111'
}
book2 = {
'000': '0',
'001': '1',
'010': '2',
'011': '3',
'100': '4',
'101': '5',
'110': '6',
'111': '7'
}
n = int(input())
sn = ['' for _ in range(n)]
for i in range(n):
sn[i] = input()
for s in sn: #获取二进制形式数
num = ''
for j in s:
num += book1[j]
ss = ''
t = ''
count = 0
for k in num[::-1]:
t = k+t
count += 1
if count == 3: #三个数一组,当三个以后进行转换
count = 0
ss = book2[t] + ss
t = ''
if count == 1:#不够三个时两种情况,分别前方补0,注意不能写+=
t = '00'+t
ss = book2[t] + ss
if count == 2:
t = '0' + t
ss = book2[t]+ss
print(int(ss))
【进制转换笔记】
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,8) | — | int(n,16) |
16进制 | hex(int(n,2)) | hex(int(n,8)) | hex(int(n,10)) | — |
使用Python内置的函数进行进制转换,大家不难发现都是先转换成十进制再转换成对应的进制,我们简单举一个例子,其他的不再赘述:
# 8进制转16进制:8->10->16
n=input()
print(hex(int(n,8)))
输入:1010
输出:0x208
如果不想带前两位的标记,可使用如下方法:
- 方法一:切片,将得到的结果从第三个字符开始取结果即可
# 10进制转换成2进制
n=int(input())
print(bin(n)[2:]) # 切片操作
输入:10
输出:12
- 方法二:使用format函数进行格式化,format函数自带转换功能,yyds
n=input()
print("{:b}".format(int(n,8)))
# 先将8进制的数转换为10进制,
# 然后在format的槽中添加一个b,等价于实现了bin函数的功能
# 但是此结果是不带有0b前缀的
输入:1010
输出:1000001000
其他进制:(n右边的是原始进制)
print("{:o}".format(int(n,16))) # 其他类型转换为8进制
print("{:x}".format(int(n,8))) # 其他类型转换为16进制
【思考】
新年快乐!
Python力扣题解系列持续更新,欢迎
点赞收藏
+关注
上一篇:菜菜的刷题日记 | 20.有效的括号(B站笔试题)
下一篇:菜菜的刷题日记 | 蓝桥杯 — 子串分值【第十一届】【省赛】【A组】
本人水平有限,文章中不足之处欢迎下方评论区批评指正~如果感觉对你有帮助,点个赞 支持一下吧 ~
不定期分享 有趣、有料、有营养内容,欢迎 订阅关注 我的博客 ,期待在这与你相遇 ~
版权声明
本文为[猿知]所创,转载请带上原文链接,感谢
https://blog.csdn.net/Magic_Zsir/article/details/122760733
边栏推荐
猜你喜欢
通过sparksql读取presto中的数据存到clickhouse
使用compressorjs压缩图片,优化功能,压缩所有格式的图片
带您遨游太空,美摄科技为航天创意小程序提供全面技术支持
免费开源智能充电桩物联网SAAS云平台
可视化常见绘图(五)散点图
Intuitive understanding of torch nn. Unfold
Solution of emergency communication system for major security incidents
van-uploader上传图片实现过程、使用原生input实现上传图片
可视化常见问题解决方案(八)数学公式
Draw margin curve in arcface
随机推荐
Intelligent communication solution of Hainan Phoenix Airport
go语言数组操作
H5案例开发
Patrol inspection intercom communication system in power industry
colab
PyTorch 12. Hook usage
Jupyter Notebook 安装
van-uploader上传图片实现过程、使用原生input实现上传图片
机器视觉系列(01)---综述
remote: Support for password authentication was removed on August 13, 2021.
无盲区、长续航|公专融合对讲机如何提升酒店服务效率?
How does the public and Private Integrated walkie talkie realize cooperative work under multi-mode communication?
记录一些npm 有关的问题(杂乱记录)
带您遨游太空,美摄科技为航天创意小程序提供全面技术支持
Transformer的pytorch实现
PyTorch 17. GPU concurrency
大型体育赛事无线通信系统
商业广场无线对讲系统解决方案
xdotool按键精灵
PyTorch 11. Regularization