菜菜的刷题日记 | 蓝桥杯 — 十六进制转八进制(纯手撕版)附进制转换笔记
系列索引:菜菜的刷题日记 | 被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 = 0for k in num[::-1]:t = k+tcount += 1if count == 3: #三个数一组,当三个以后进行转换count = 0ss = book2[t] + sst = ''if count == 1:#不够三个时两种情况,分别前方补0,注意不能写+=t = '00'+tss = book2[t] + ssif count == 2:t = '0' + tss = book2[t]+ssprint(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组】本人水平有限,文章中不足之处欢迎下方
菜菜的刷题日记 | 蓝桥杯 — 十六进制转八进制(纯手撕版)附进制转换笔记相关推荐
- 菜菜的刷题日记 | 66.加一 Plus One
系列索引:菜菜的刷题日记 | 被LeetCode用Python狂虐的那段日子 菜鸡的刷题之路--2022/1/7 文章目录 [题目] [我的代码] [参考代码1] [参考代码2] [参考代码3] [思 ...
- 菜菜的刷题日记 | 12.整数转罗马数字
系列索引:菜菜的刷题日记 | 被LeetCode用Python狂虐的那段日子 菜鸡的刷题之路--2022/1/24,这几天忙着肝并发编程,题在做但是没空写题解,今晚补一篇. 文章目录 [题目] [官方 ...
- 蓝桥杯 十六进制转为八进制 C语言版
** 蓝桥杯 十六进制转为八进制 ** 题目 给定n个十六进制正整数,输出它们对应的八进制数. 输入格式 输入的第一行为一个正整数n (1<=n<=10). 接下来n行,每行一个由09.大 ...
- 蓝桥杯-十六进制转八进制(java)
基础练习 十六进制转八进制 时间限制:1.0s 内存限制:512.0MB问题描述给定n个十六进制正整数,输出它们对应的八进制数.输入格式输入的第一行为一个正整数n (1<=n<=10).接 ...
- 蓝桥杯——十六进制转八进制(Java解法)
这道题其实挺难的,之前做过一次,用的十六进制转化为十进制,然后用十进制再转化为八进制,代码很简单,用的jdk上自带的进制转换进行换算. import java.util.Scanner; /** * ...
- 题库练习2(随机数去重排序、分割字符串、进制转换)
1. 随机数去重排序 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉 ...
- 蓝桥杯-十六进制转八进制
这个题还是有点含金量,第一遍做出来,很可能会超时,比如以下代码: import java.util.ArrayList; import java.util.Scanner;public class M ...
- 蓝桥杯:十六进制转八进制
基础练习 十六进制转八进制 时间限制:1.0s 内存限制:512.0MB 问题描述 给定n个十六进制正整数,输出它们对应的八进制数. 输入格式 输入的第一行为一个正整数n (1<=n< ...
- 蓝桥杯16转八c语言,蓝桥杯 十六进制转八进制
思路: 先将十六进制转为二进制,再将二进制转为八进制 代码: #include #include #include #include #include #include #define for1(i, ...
最新文章
- Docker 容器技术 — Private Registry
- ASP.Net Core Web API 如何返回 File。
- Forward团队-爬虫豆瓣top250项目-模块开发过程
- javascript原型_JavaScript原型初学者指南
- 宋浩 概率统计 笔记_推论统计分析学习笔记
- linux 卷文件满,LVM逻辑卷容量的增减
- mac remix导入本地项目
- 集线器、交换机与路由器有什么区别?
- 【图片】图片处理,图片压缩相关知识分享
- 正则表达式:JAVA正则表达式运用
- java 集成极光推送
- unreal4特性介绍
- 理解计算机3D图形学中的坐标系变换
- 什么是signal(SIGCHLD, SIG_IGN)函数
- AI数字攻防看数字社会基建发展
- 陌陌和它的解药,聊聊出海社交产品的思路
- 一个基于GPRS模块及云后台的开源系统--Luat
- 意念机Umind及其控制无人机
- 【调度】经典作业车间调度问题VS柔性作业车间调度问题
- python之正弦图
热门文章
- 财务人日常要用到的10大网站,这次给你整全了!
- android ratingbar 高度,简单实用的自定义AndroidRatingBar
- iphone数据传输已取消怎么办_苹果同一个账号不想同步传输 苹果同一个id怎么取消同步...
- 燕麦片的减肥效果怎么样?
- Chrome插件请求数据时 请求报错(blocked:mixed-content)
- java输出一个空心的爱心
- 淘宝店铺运营技巧,宝贝转化率的因素有哪些,如何提高店铺转化
- 红米k40s和红米note11pro哪个值得买 两者配置对比
- 递归遍历二叉树并且求和
- 空间三角形_玄关三角形沙发不靠墙,这设计真牛,直接解决无玄关空间少的问题...