- 十进制转换为二进制
- 十进制转换为八进制
- 十进制转换为十六进制
- 二进制转换为十进制
- 八进制转换为十进制
- 十六进制转换为十进制
- 二进制,八进制,十六进制之间的相互转换
- 十六进制转换为二进制
- 二进制转换为十六进制
- 附录
这里以十进制数
10
为例,转换为其他进制。
十进制转换为二进制
# 初始化整数10
num = 10
# 将整数10转换为二进制表示
print(bin(num))
# 去掉二进制表示前的标识符0b
print(bin(num)[2:])
"""
result:
0b1010
1010
"""
从上述的结果可以看到,我们成功地将十进制下的整数10
转换为了二进制下的1010
。然而这不够,我们再来看一个例子,如果我们需要将100
转换为二进制表达呢?
# 初始化整数100
num = 100
# 将整数100转换为二进制表示
print(bin(num))
# 去掉二进制表示前的标识符0b
print(bin(num)[2:])
"""
result:
0b1100100
1100100
"""
我们可以看到,十进制下的整数100
转换为了二进制下的1100100
。不难发现,我们二进制下的表打是一个7
位数。我们知道,通常在计算机中,我们会使用8
位,16
位,32
位,64
位来表示一个数字。也就是说,我们应该使用一个8
位数来表示100
这个整数。显然这里的7
位数1100100
省略了最前面的0
。
所以我们需要对上述代码进行一些小的改动,最终结果如下:
# 初始化整数100
num = 100
# 初始化一个新的字符串对象,存储最终的二进制结果
str1 = ""
# 将整数100转换为二进制表示
num_8 = bin(num)
# 去掉二进制表示前的标识符0b
num_8 = num_8[2:]
# 将最终的结果最高为前加上0
if len(num_8) < 8:
str1 = "0" * (8 - len(num_8)) + num_8
print(str1)
"""
result:
01100100
"""
可以看到,最终我们得到了十进制下的整数100
在8
位二进制下的表示结果为01100100
。如果十进制下的整数很大,则可以采用16
位,甚至更多位数的二进制表示结果。原理同上述代码。注意:二进制的表示结果是string
类型的,而不再是int
类型了。八进制,十六进制的结果也是string
类型
# 初始化整数10
num = 10
# 将整数10转换为二进制表示
print(oct(num))
# 去掉二进制表示前的标识符0b
print(oct(num)[2:])
"""
result:
0o12
12
"""
十进制转换为十六进制
# 初始化整数10
num = 10
# 将整数10转换为二进制表示
print(hex(num))
# 去掉二进制表示前的标识符0b
print(hex(num)[2:])
"""
result:
0xa
a
"""
二进制转换为十进制
str1 = "1010"
print(int(str1, 2))
"""
result:
10
"""
八进制转换为十进制
str1 = "10"
print(int(str1, 8))
"""
result:
8
"""
十六进制转换为十进制
str1 = "f"
str2 = "F"
print(int(str1, 16))
print(int(str2, 16))
"""
result:
15
15
"""
二进制,八进制,十六进制之间的相互转换
十六进制转换为二进制
这里我们以十六进制转换为二进制举例。我们可以先将十六进制转换为十进制,然后再将十进制转换为二进制即可。
str1 = "f"
result = bin(int(str1, 16))[2:]
print(result)
"""
result:
1111
"""
二进制转换为十六进制
str1 = "1111"
result = hex(int(str1, 2))[2:]
print(result)
"""
result:
f
"""
特别注意: 最终我们获取到的十六进制结果为小写的f
字符,然而当我们表示十六进制的数字时,我们是不区分大写还是小写字符的,因此在实际应用中我们可以进行相应的调整。
通过观察不难发现,二进制,八进制,十六进制下的标识符为:
项目 | 内置转换函数 | 标识符 |
---|---|---|
二进制 | bin() | 0b |
八进制 | oct() | 0o |
十六进制 | hex() | 0h |
不难发现,标识符为0
加上内置转换函数的首字母。
码字不易,如果大家觉得有用,请高抬贵手给一个赞让我上推荐让更多的人看到吧~
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)