实现十进制、十六进制、二进制互转

🎉摘要:Python 是一门解释型、面向对象、动态类型的高级编程语言,由荷兰程序员 Guido van Rossum 于 1991 年发布,核心设计理念是优雅、明确、简单。

该示例将演示如何实现十进制与十六进制、二进制与十六进制、十进制和十六进制互转。

在 Python3 中,提供了几个内置函数用来实现禁止转换,如下:

  • bin(x):十进制 → 二进制(前缀0b)

  • int(x, 2):二进制 → 十进制

  • hex(x):十进制 → 十六进制(前缀0x)

  • int(x, 16):十六进制 → 十进制

示例

十进制&二进制互转

可以使用 bin() 和 int() 函数实现,代码如下:

def dec_to_bin(decimal_num):
    """十进制 转 二进制"""
    # bin() 返回带 0b 前缀的字符串,用 [2:] 去掉前缀
    return bin(decimal_num)[2:]

def bin_to_dec(binary_str):
    """二进制 转 十进制"""
    # int(字符串, 2) 表示按二进制解析
    return int(binary_str, 2)

if __name__ == "__main__":
    dec = 255
    binary = "11111111"
    print(f"十进制 {dec} → 二进制:{dec_to_bin(dec)}")
    print(f"二进制 {binary} → 十进制:{bin_to_dec(binary)}\n")

运行结果:

十进制 255 → 二进制:11111111
二进制 11111111 → 十进制:255

十进制&十六进制互转

可以使用 hex() 和 int() 函数实现,代码如下:

def dec_to_hex(decimal_num):
    """十进制 转 十六进制"""
    # hex() 返回带 0x 前缀,[2:] 去掉前缀
    return hex(decimal_num)[2:]

def hex_to_dec(hex_str):
    """十六进制 转 十进制"""
    # int(字符串, 16) 表示按十六进制解析
    return int(hex_str, 16)

if __name__ == "__main__":
    dec = 255
    hex_num = "ff"
    print(f"十进制 {dec} → 十六进制:{dec_to_hex(dec)}")
    print(f"十六进制 {hex_num} → 十进制:{hex_to_dec(hex_num)}\n")

运行结果:

十进制 255 → 十六进制:ff
十六进制 ff → 十进制:255

二进制&十六进制互转

可以使用 int() 函数实现二进制和十六进制互转,代码如下:

def bin_to_hex(binary_str):
    """二进制 转 十六进制"""
    # 先转十进制,再转十六进制
    dec_num = int(binary_str, 2)
    return hex(dec_num)[2:]

def hex_to_bin(hex_str):
    """十六进制 转 二进制"""
    # 先转十进制,再转二进制
    dec_num = int(hex_str, 16)
    return bin(dec_num)[2:]

if __name__ == "__main__":
    binary = "11111111"
    hex_num = "ff"
    print(f"二进制 {binary} → 十六进制:{bin_to_hex(binary)}")
    print(f"十六进制 {hex_num} → 二进制:{hex_to_bin(hex_num)}")

运行结果:

二进制 11111111 → 十六进制:ff
十六进制 ff → 二进制:11111111

  


说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
其他应用
公众号