博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python中的进制表示方式及转换方法探讨
阅读量:6330 次
发布时间:2019-06-22

本文共 1691 字,大约阅读时间需要 5 分钟。

在Python中,非十进制数字的表示方式为:

二进制:前面加0b,如0b1001

八进制:前面加0o,如0o3562

十六进制:前面加0x,如0x2af3

不同进制数字可直接相加,结果返回十进制:

x=0b100     #二进制的4 y=0xa       #十六进制的10 print(x+y,type(x),type(y)) ​ 执行结果:14 

下面按照不同的进制说明相关的转换方法:

bin(binary:其他进制数字→0b开头的二进制字符串)

x=bin(100) y=bin(0x2a) print(x,type(x)) print(y,type(y)) ​ 执行结果: 0b1100100 
0b101010

oct(octonary:其他进制数字→0o开头的八进制字符串)

x=oct(100) y=oct(0b100) print(x,type(x)) print(y,type(y)) ​ 执行结果: 0o144 
0o4

hex(hexadecimal:其他进制数字→0x开头的十六进制字符串)

x=hex(100) y=hex(0b100) print(x,type(x)) print(y,type(y)) ​ 执行结果: 0x64 
0x4

int(integer:三种情况→十进制数字)

情况一:0?开头的其他进制数字→十进制数字

a=0b100 b=0xf print(int(a)) print(int(b)) ​ 执行结果: 4 15

情况二:0?开头的其他进制字符串→十进制数字

a='0b100' b='0xf' print(int(a,base=0)) print(int(b,0)) ​ 执行结果: 4 15

情况三:不带0?的其他进制字符串→十进制数字

a='100' b='f' print(int(a,base=2)) print(int(b,16)) ​ 执行结果: 4 15

int()的第一个参数 int()的第二个参数
0?开头的其他进制数字 不输
0?开头的其他进制字符串 必输base=0,或简写为0
不带0?的其他进制字符串 必输base=进制数,或简写为进制数

 

 

 

 

 

 

注意:bin、oct、hex都直接接一个参数且输出的都是字符串。int与这三个不同,它分三种情况,接一个或两个参数,且输出结果是数字。

x=0b101 y=str(x) print(x,type(x)) print(y,type(y)) ​ 执行结果: 5 
5
注意:直接手输的0b、0o、0x开头的非十进制数字的数据类型都是int,对其print或转为字符串时,会先转化成十进制再转成字符串

补充:笔者自行推导的int2bin、bin2int

基于二进制与十进制的转化关系,笔者自己推导了输入、输出均为十进制数字的int2bin、bin2int函数:

int2bin:十进制转二进制(输入、输出均为十进制数字,如将十进制的7转换为十进制的111)

def int2bin(x):    s=''    while x>0:        s=s+str(x % 2)        x=x//2    return s[::-1]print(int2bin(7))

bin2int:二进制转十进制(输入、输出均为十进制数字,如将十进制的111转换为十进制的7)

def bin2int(x):    y=str(x)    power = len(y)-1    s=0    for i in y:        s=s+int(i)*(2**power)        power-=1    return sprint(bin2int(111))

 

转载于:https://www.cnblogs.com/oddgod/p/10897873.html

你可能感兴趣的文章
ios ios7 取消控制拉升
查看>>
182在屏幕中实现网格化视图效果
查看>>
本文摘录 - FlumeJava
查看>>
Scala学习(三)----数组相关操作
查看>>
Matlab基于学习------------------函数微分学
查看>>
Dundas 系列
查看>>
Windows的命令行查看,修改,删除,添加环境变量
查看>>
iOS 图文混排
查看>>
64. Minimum Path Sum
查看>>
Windows Live Writer 使用指南
查看>>
分析iOS Crash文件,使用命令符号化iOS Crash文件
查看>>
R学习笔记 第五篇:字符串操作
查看>>
在Mac OS下配置PHP开发环境
查看>>
(转)介绍下Nuget在传统Asp.net项目中的使用
查看>>
C# ArcEngine 实现点击要素高亮并弹出其属性
查看>>
初识GO语言——安装Go语言
查看>>
SDK命令行操作
查看>>
基于Bootstrap的DropDownList的JQuery组件的完善版
查看>>
EXTJS学习系列提高篇:第二十四篇(转载)作者殷良胜,ext2.2打造全新功能grid系列--阅增删改篇...
查看>>
Hadoop MapReduce编程 API入门系列之分区和合并(十四)
查看>>