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

Python函数:如何将二进制和十六进制数转换成十进制数?

发布时间:2023-12-08 17:18:04

在Python中,可以使用以下几种方法将二进制和十六进制数转换为十进制数:

1. 内置函数 int()

使用内置的 int() 函数,可以将一个字符串表示的数字转换为整数。int() 函数的可选参数 base 可以指定输入字符串的进制,默认情况下为十进制。

示例代码:

   bin_num = '1010'    # 二进制数
   hex_num = 'FF'      # 十六进制数

   dec_num1 = int(bin_num, 2)    # 将二进制数转换为十进制数
   dec_num2 = int(hex_num, 16)   # 将十六进制数转换为十进制数

   print(dec_num1)    # 输出结果:10
   print(dec_num2)    # 输出结果:255
   

2. bin() 和 hex() 函数

使用内置的 bin() 和 hex() 函数,可以将一个十进制数转换为二进制和十六进制字符串。

示例代码:

   dec_num = 10      # 十进制数

   bin_num = bin(dec_num)    # 将十进制数转换为二进制字符串
   hex_num = hex(dec_num)    # 将十进制数转换为十六进制字符串

   print(bin_num)    # 输出结果:0b1010
   print(hex_num)    # 输出结果:0xa
   

3. 使用自定义函数

我们可以编写一个自定义函数来实现二进制和十六进制转换为十进制的功能。对于二进制数,可以使用二进制的权重进行计算;对于十六进制数,则可以使用每位上的数值与相应的权重进行计算。

示例代码:

   def bin_to_dec(binary):
       decimal = 0
       power = len(binary) - 1
       for digit in binary:
           decimal += int(digit) * 2**power
           power -= 1
       return decimal

   def hex_to_dec(hexadecimal):
       decimal = 0
       power = len(hexadecimal) - 1
       for digit in hexadecimal:
           if digit.isdigit():
               decimal += int(digit) * 16**power
           else:
               decimal += (ord(digit.upper()) - 55) * 16**power
           power -= 1
       return decimal

   bin_num = '1010'    # 二进制数
   hex_num = 'FF'      # 十六进制数

   dec_num1 = bin_to_dec(bin_num)    # 将二进制数转换为十进制数
   dec_num2 = hex_to_dec(hex_num)    # 将十六进制数转换为十进制数

   print(dec_num1)    # 输出结果:10
   print(dec_num2)    # 输出结果:255
   

这些是将二进制和十六进制数转换为十进制数的几种方法。你可以根据具体的需求选择合适的方法来实现转换。