Python进制转换详细介绍

Python为我们提供了强大的内置函数和格式化数字的方法去实现进制转换的功能,下面一一介绍。先将所有的函数罗列出来,如下:↓2进制8进制10进制16进制2进…

大家好,又见面了,我是你们的朋友全栈君。

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,8) – int(n,16)
16进制 hex(int(n,2)) hex(int(n,8)) hex(int(n,10)) –

原理:python内置函数进行进制转换的原理是将读入的一个字符串(python默认读入的都是字符串形式)转为10进制,然后再用相关函数进行其他进制转换

下面来逐一介绍每个函数的具体使用方法:

2进制转换成其他进制:

2进制转换成8进制:oct(int(n,2))

n=input()
print(oct(int(n,2)))

输入: 1010
输出: 0o12

2进制转换成10进制:int(n,2)

n=input()
print(int(n,2))

输入:1010
输出:10

2进制转换成16进制:hex(int(n,2))

n=input()
print(hex(int(n,2)))

输入:1010
输出:0xa

8进制转换成其他进制:

8进制转换成2进制:bin(int(n,8))

n=input()
print(bin(int(n,8)))

输入:1010
输出:0b1000001000

8进制转换成10进制:int(n,8)

n=input()
print(int(n,8))

输入:1010
输出:520

8进制转换成16进制:hex(int(n,16))

n=input()
print(hex(int(n,8)))

输入:1010
输出:0x208

10进制转换成其他进制:

说明:10进制转换可以直接采取上述表格中的形式,读入字符串,先转换为10进制的数,再用函数进行操作转换成其他进制。
但同时可以这样操作,读入的时候直接进行强制类型转换操作,转为int类型(python中的int类型的数据就是10进制)

10进制转换成2进制:bin(n)

n=int(input())
print(bin(n))

输入:10
输出:0b1010

10进制转换成8进制:oct(n)

n=int(input())
print(oct(n))

输入:10
输出:0o12

10进制转换成16进制:hex(n)

n=int(input())
print(hex(n))

输入:10
输出:0xa

16进制转换成其他进制:

16进制转换成2进制:bin(int(n,16))

n=input()
print(bin(int(n,16)))

输入:a
输出:0b1010

16进制转换成8进制:oct(int(n,16))

n=input()
print(oct(int(n,16)))

输入:a
输出:0o12

16进制转换成10进制:int(n,16)

n=input()
print((int(n,16)))

输入:a
输出:10

注意:我们可以发现,除了转换成10进制的数,其他的进制转换结果都带有前缀,2进制是0b,8进制是0o,16进制是0x。但是我们在绝大部分使用进制转换后的数据时,是不需要它的前缀的。所以笔者这里介绍两种方法,去掉它的前缀。

方法一:使用字符串切片操作

原理:就是将进制转换后得到的结果对其进行字符串切片操作,将得到的结果从第三个字符开始取结果即可,这样我们可以得到不带前缀的结果

举例:

//10进制转换成2进制
n=int(input())
print(bin(n)[2:])//切片操作

输入:10
输出:1010

//10进制转换成8进制
n=int(input())
print(oct(n)[2:])//切片操作

输入:10
输出:12

//10进制转换成16进制
n=int(input())
print(hex(n)[2:])//切片操作

输入:10
输出:a

笔者这里以10进制转换其他进制进行了举例,其他的情况类比即可。

方法二:使用format函数进行格式化数字操作

说明:首先,笔者在前面说过,不同类型的进制转换的原理时先转换为十进制,然后再用相关的函数进行禁止转换操作,而format函数里面有格式化数字的方法可以直接实现进制转换的功能,下面一一介绍:

其他类型转换为2进制:
操作:在format函数的槽中添加一个b 即可实现其他类型对2进制的转换,下面举例说明

n=input()
print("{:b}".format(int(n,8)))
//先将8进制的数转换为10进制,
//然后在format的槽中添加一个b,等价于实现了bin函数的功能
//但是此结果是不带有0b前缀的

输入:1010
输出:1000001000

其他类型转换为8进制:

操作:在format函数的槽中添加一个o 即可实现其他类型对8进制的转换,下面举例说明

n=input()
print("{:o}".format(int(n,16)))
//先将一个16进制数转换为10进制
//然后利用format函数格式化数字方法转换即可

输入:a
输出:12

其他类型转换为16进制:
操作:在format函数的槽中添加一个x 即可实现其他类型对2进制的转换,下面举例说明

n=input()
print("{:x}".format(int(n,8)))
//先将一个8进制的数转换为16进制
//然后原理同上

输入:1010
输出:208

注意:由于转换成10进制本来就是不带前缀的,无需用format格式化数字方法控制

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/124608.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • matlab画折线图

    matlab画折线图p=‘plot_scale.xlsx’;a=xlsread§;x=a(1,:);%x轴上的数据,第一个值代表数据开始,第二个值代表间隔,第三个值代表终止susan=a(2,:);%a数据y值HarrisLaplace=a(3,:);MSCP=a(4,:);CPDA=a(5,:);HeYung=a(6,:);FastCPDA=a(7,:);DOG=a(8,:);GCM=a(9,:);ANDD=a(10,:);MSRJ=a(11,:);ZhangSun=a(12,:);WEAE=a(

    2022年6月12日
  • C语言 函数指针和指针函数及Main()函数

    C语言 函数指针和指针函数及Main()函数正文先来看看两者的定义以及说明。指针函数定义指针函数,简单的来说,就是一个返回指针的函数,其本质是一个函数,而该函数的返回值是一个指针。声明格式为:类型标识符*函数名(参数表)这似乎并不难理解,再进一步描述一下。看看下面这个函数声明:intfun(intx,inty);这种函数应该都很熟悉,其实就是一个函数,然后返回值是一个int类型,…

    2022年6月22日
  • navicat 15.0.17版本激活码_最新在线免费激活

    (navicat 15.0.17版本激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~0…

    2022年3月28日
  • oracle删除索引并释放空间_oracle日志文件 定期清理

    oracle删除索引并释放空间_oracle日志文件 定期清理1.背景概述近期应用升级上线过程中,存在删除业务表索引的变更操作,且因删除索引导致次日业务高峰时期,数据库响应缓慢的情况,经定位是缺失索引导致。与用户沟通,虽然变更中删除索引的需求很少,但也存在此类需求。本文从数据库层面,旨在尽可能避免类似问题发生,制定删除索引的变更规范。2.索引删除规范若确认需要做索引删除,可以使用Oracle提供的两个功能特性协助判断删除索引是否会有隐患。2.1增加索引监控…

    2022年9月5日
  • SQLyog详细使用教程[通俗易懂]

    SQLyog详细使用教程[通俗易懂]SQLyog详细使用教程

    2022年4月18日
  • 芭芭农场自动脚本_农场游戏源码

    芭芭农场自动脚本_农场游戏源码特此声明:此版本校内开心农场外挂由python语言编写,运行平台为linux。本代码是修改网络上流传的源码而成,本人贴出此代码没有任何利益想法,只当学习交流之用,并感谢源码开发者!#!/usr/bin/envpython#encoding:utf-8#2009-8-21升级后importurllib,urllib2,cookielibimporttime,zlib,r

    2022年9月12日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号