首先想问的是,你清楚的了解二进制、八进制、十进制和十六进制吗?程序员肯定是知道的,但是没有基础的人或许真的不知道这些。
平时使用的都是十进制数。但计算机中本质都是二进制,衍生的常用的有二进制、八进制和十六进制。在程序中打印地址通长用十六进制数表示。
各种进制介绍就不谈了。不同的进制之间是存在转化关系的。在python中,0b开头的数字表示二进制,0o开头的数字表示八进制,而0x开头的数字表示十六进制。默认为十进制,示例代码如下:
bin_number = 0b10 # 二进制
oct_number = 0o10 # 八进制
dec_number = 10 # 十进制
hex_number = 0x10 # 十六进制
# 分别打印出来
print(bin_number)
print(oct_number)
print(dec_number)
print(hex_number)
输出结果如下:
2
8
10
16
输出的是十进制,不同进制下的10,转化成十进制分别为2、8、10、16。
那怎么打印原始的值?这里已经有很多回答了,最直接的方式就是使用内置的函数 bin、oct、hex。它们的本质把数字转化成字符串来表示相应的进制。当然也可以使用字符串格式化规则处理。
新手的话,在了解下进制的本质和之间的转化规则后,可以做个练习,实现类似bin、oct、hex的函数,这还会涉及到字符和数字的转化,即ASCII码的一些相关知识。
如此走下来,学的才能足够深刻。