欢迎访问宙启技术站
智能推送

如何在Python中编写一个函数,用于将一个整数转换为二进制、八进制或十六进制?

发布时间:2023-06-27 00:47:48

在Python中,我们可以使用内置的函数bin()、oct()、hex()将整数转化为二进制、八进制和十六进制。

1. 转换为二进制

使用内置函数bin()可以将整数转换为二进制。函数的语法如下:

bin(number)

其中,number代表需要转换的整数。函数返回的是一个以“0b”为前缀的字符串(表示二进制),例如:

num = 10
binary_num = bin(num)

print(binary_num)   # output: 0b1010

可以发现,函数返回的字符串以“0b”为前缀,这代表着该字符串是一个二进制数。

2. 转换为八进制

使用内置函数oct()可以将整数转换为八进制。函数的语法如下:

oct(number)

其中,number代表需要转换的整数。函数返回的是一个以“0o”为前缀的字符串(表示八进制),例如:

num = 10
octal_num = oct(num)

print(octal_num)    # output: 0o12

可以发现,函数返回的字符串以“0o”为前缀,这代表着该字符串是一个八进制数。

3. 转换为十六进制

使用内置函数hex()可以将整数转换为十六进制。函数的语法如下:

hex(number)

其中,number代表需要转换的整数。函数返回的是一个以“0x”为前缀的字符串(表示十六进制),例如:

num = 10
hex_num = hex(num)

print(hex_num)      # output: 0xa

可以发现,函数返回的字符串以“0x”为前缀,这代表着该字符串是一个十六进制数。

综上所述,我们可以写一个函数convert(num, base),表示将整数num转换为指定进制base的字符串,代码如下:

def convert(num, base):
    if base == 2:
        return bin(num)
    elif base == 8:
        return oct(num)
    elif base == 16:
        return hex(num)
    else:
        return "Invalid base"

print(convert(10, 2))     # output: 0b1010
print(convert(10, 8))     # output: 0o12
print(convert(10, 16))    # output: 0xa
print(convert(10, 3))     # output: Invalid base

在该函数中,我们使用了if-elif-else语句,根据输入的进制base选择使用哪个内置函数进行转换,并将转换后的结果返回。在调用函数时,我们可以输入需要转换的整数num和指定的进制base,然后得到转换后的结果。