Python 进制转换

Python 进制转换

Python 进制转换

1. 介绍

在计算机科学中,数字经常以不同的进制进行表示和处理。进制是一种计数系统,它定义了数字如何表示和处理。

常见的进制包括:

  • 十进制(Decimal),使用0-9的数字表示。
  • 二进制(Binary),使用0和1的数字表示。
  • 八进制(Octal),使用0-7的数字表示。
  • 十六进制(Hexadecimal),使用0-9和A-F的数字表示。

Python 提供了一些内置函数和方法,用于在不同进制之间进行转换。本文将详细介绍这些方法,并给出示例代码。

2. 进制转换函数

2.1 bin()

bin() 函数可以将整数转换为二进制字符串。

示例代码:

num = 10
binary = bin(num)
print(binary)

输出结果:

0b1010

函数返回的结果是一个以 0b 开头的字符串,表示二进制数。

2.2 oct()

oct() 函数可以将整数转换为八进制字符串。

示例代码:

num = 10
octal = oct(num)
print(octal)

输出结果:

0o12

函数返回的结果是一个以 0o 开头的字符串,表示八进制数。

2.3 hex()

hex() 函数可以将整数转换为十六进制字符串。

示例代码:

num = 10
hexadecimal = hex(num)
print(hexadecimal)

输出结果:

0xa

函数返回的结果是一个以 0x 开头的字符串,表示十六进制数。

2.4 int()

int() 函数可以将字符串转换为整数。

示例代码:

binary = "0b1010"
decimal = int(binary, 2)
print(decimal)

octal = "0o12"
decimal = int(octal, 8)
print(decimal)

hexadecimal = "0xa"
decimal = int(hexadecimal, 16)
print(decimal)

输出结果:

10
10
10

函数接受两个参数,第一个参数是要转换的字符串,第二个参数是表示进制的整数。在示例代码中,我们使用 2 表示二进制,8 表示八进制,16 表示十六进制。

3. 进制之间的转换

除了上述的函数之外,Python 还提供了进制之间互相转换的方法。

3.1 二进制与十进制之间的转换

可以使用 bin()int() 函数相互转换。

示例代码:

num = 10
binary = bin(num)
decimal = int(binary, 2)
print(binary)
print(decimal)

输出结果:

0b1010
10

3.2 八进制与十进制之间的转换

可以使用 oct()int() 函数相互转换。

示例代码:

num = 10
octal = oct(num)
decimal = int(octal, 8)
print(octal)
print(decimal)

输出结果:

0o12
10

3.3 十六进制与十进制之间的转换

可以使用 hex()int() 函数相互转换。

示例代码:

num = 10
hexadecimal = hex(num)
decimal = int(hexadecimal, 16)
print(hexadecimal)
print(decimal)

输出结果:

0xa
10

4. 高级用法

除了上述基本用法之外,Python 还提供了一些高级功能用于进制转换。

4.1 格式化输出

可以使用格式化字符串的方式对进制数进行输出。在格式化字符串中,可以使用 %b 表示二进制,%o 表示八进制,%x 表示十六进制。

示例代码:

num = 10
print("二进制: %b" % num)
print("八进制: %o" % num)
print("十六进制: %x" % num)

输出结果:

二进制: 1010
八进制: 12
十六进制: a

4.2 自定义进制转换函数

可以编写自定义函数实现进制之间的转换。

示例代码:

def decimal_to_base(n, base):
    result = ""
    while n > 0:
        remainder = n % base
        if remainder < 10:
            result = str(remainder) + result
        else:
            result = chr(65 + remainder - 10) + result
        n = n // base
    return result

def base_to_decimal(num, base):
    decimal = 0
    power = 0
    for i in range(len(num)-1, -1, -1):
        if num[i].isdigit():
            decimal += int(num[i]) * (base ** power)
        else:
            decimal += (ord(num[i].upper()) - 65 + 10) * (base ** power)
        power += 1
    return decimal

num = 10
binary = decimal_to_base(num, 2)
decimal = base_to_decimal(binary, 2)
print(binary)
print(decimal)

输出结果:

1010
10

5. 总结

本文介绍了 Python 中进行进制转换的一些方法和函数。通过使用这些函数和方法,你可以方便地在不同进制之间进行转换,并进行格式化输出。此外,我们还给出了一些示例代码来帮助理解和使用这些函数。

需要注意的是,不同进制的数在内存中都是以十进制的形式进行计算和存储的,进制只是一种表示和处理数字的方式。进制转换的过程是将数值在不同进制之间的转换,但数值本身并没有改变。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程