Skip to content

Python3 进制转换与 Unicode 编码

本教程将带你了解 Python3 中常用的进制转换函数以及 Unicode 编码相关的函数,并通过示例代码帮助你快速掌握它们的使用方法。

进制转换

在计算机科学中,数字可以用不同的进制表示。常见的进制包括二进制 (base-2)、八进制 (base-8)、十进制 (base-10) 和十六进制 (base-16)。Python 提供了内置函数来进行这些进制之间的转换。

bin() 函数:转换为二进制

bin() 函数可以将一个整数 (int) 转换为以 '0b' 为前缀的二进制字符串。二进制是计算机最基础的表示方式,只包含 0 和 1 两个数字。

python
>>> bin(9)
'0b1001'

在这个例子中,十进制数字 9 被转换成了二进制字符串 '0b1001'0b 前缀表明这是一个二进制数。

oct() 函数:转换为八进制

oct() 函数可以将一个整数转换为以 '0o' 为前缀的八进制字符串。八进制使用 0 到 7 这八个数字。

python
>>> oct(9)
'0o11'

这里,十进制的 9 被转换为了八进制的 '0o11'0o 前缀表示这是一个八进制数。

hex() 函数:转换为十六进制

hex() 函数可以将一个整数转换为以 "0x" 为前缀的小写十六进制字符串。十六进制使用 0 到 9 这十个数字,以及 a 到 f 这六个字母(代表 10 到 15)。十六进制在表示内存地址和颜色值时非常常见。

python
>>> hex(29)
'0x1d'

十进制数字 29 被转换成了十六进制字符串 '0x1d'0x 前缀表明这是一个十六进制数。其中,d 代表十进制的 13,因此 0x1d 等于 1 * 16 + 13 = 29

Unicode 编码

Unicode 是一种国际标准,它为世界上几乎所有的字符都分配了一个唯一的数字,称为码点 (code point)。Python 使用 Unicode 来表示字符串。

ord() 函数:获取 Unicode 码点

ord() 函数接收一个 Unicode 字符 (str) 作为参数,并返回该字符对应的整数 Unicode 码点。

python
>>> ord("a")
97
>>> ord("β")
946
>>> ord("中")
20013
  • ord("a") 返回 97,因为字母 "a" 的 Unicode 码点是 97。
  • ord("β") 返回 946,这是希腊字母 "β" 的 Unicode 码点。
  • ord("中") 返回 20013,这是汉字 "中" 的 Unicode 码点。

chr() 函数:根据 Unicode 码点获取字符

chr() 函数接收一个整数 Unicode 码点作为参数,并返回该码点对应的 Unicode 字符串。它是 ord() 函数的逆操作。

python
>>> chr(97)
'a'
>>> chr(946)
'β'
>>> chr(20013)
'中'
  • chr(97) 返回 "a",因为 Unicode 码点 97 对应于字母 "a"。
  • chr(946) 返回 "β",这是 Unicode 码点 946 对应的希腊字母。
  • chr(20013) 返回 "中",这是 Unicode 码点 20013 对应的汉字。

掌握 bin(), oct(), hex(), ord(), 和 chr() 这些函数,可以帮助你更好地理解和处理不同进制的数字以及 Unicode 字符,这对于编写各种类型的 Python 程序都非常有用。通过这些函数,你可以在数字的不同进制表示形式和字符的 Unicode 码点之间灵活地进行转换。