当前位置:   article > 正文

Python基础:各种进制间的相互转换_python 十进制转三进制

python 十进制转三进制

Python中,进制的转换通过Python的内置函数即可实现。下文所说的其他进制指的是二进制、十六进制和八 进制。

一、 相关函数:

str():字符串转换函数
bin():将一个整数转换成2进制字符串
hex():将一个整数转换成16进制字符串
oct():将一个整数转换成8进制字符串

二、十进制转换为其它进制

代码如下:

# 十进制转换到其他进制
int = 10
hex = hex(int)
bin = bin(int)
oct = oct(int)

print('十进制数是:',int)
print(type(int),end='\n\n')
# 十进制数是: 10
# <class 'int'>

print('十六进制数是:',hex)
print(type(hex),end='\n\n')
# 十六进制数是: 0xa
# <class 'str'>

print('二进制数是:',bin)
print(type(bin),end='\n\n')
# 二进制数是: 0b1010
# <class 'str'>

print('八进制数是:',oct)
print(type(oct),end='\n\n')
# 八进制数是: 0o12
# <class 'str'>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

注:运用Python内置函数从十进制转换为其他进制,其输出的类型均为str类型,且转换后的值中,hex(),bin(),oct()会自动加上0x,0b,0o前缀。

三、其他进制转换为十进制

其他进制转换为十进制,是上述过程的相反实现。

# 其他进制转换为十进制
a = 1010  #二进制数1010
str = str(a)
print('十进制是:',int(str,2))
print(type(int(str,2)))
# 十进制是: 10
# <class 'int'>

b = 25   #八进制数25
str = str(b)
print('十进制数是:',int(str,8))
print(type(int(str,8)))
# 十进制数是: 21
# <class 'int'>

c = 25   #十六进制数25
str = str(c)
print('十进制数是:',int(str,16))
print(type(int(str,16)))
# 十进制数是: 37
# <class 'int'>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

总结:其他进制转换为十进制数,需要借助str()函数,即首先利用str()函数将数字转化为字符串类型,然后再进行转换;转换时,待转数字不应该带有0b,0x,0o前缀,否则转换后将发生错误。

四、其他进制间的相互转换

二进制、八进制、十六进制间的转换可以利用十进制作为桥梁,转换为十进制后再将其转换为其他进制。以二进制转换为十六进制为例,其他进制转换与此相类似:

# 二进制转换为十六进制
num = 1010   #二进制数1010
str = str(num)  #首先转换为str类型
int = int(str,2)  #然后转换为十进制数

print('转换的十进制数是:',int,end='\n\n')

hex = hex(int)    #将十进制数转换为十六进制数
print('转换的十六进制数是:',hex)
# 转换的十进制数是: 10

# 转换的十六进制数是: 0xa
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

下图为进制转换关系表:
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/54654
推荐阅读
相关标签
  

闽ICP备14008679号