进制转换-题目-算法


如果不使用内置的 hexint 函数来实现十六进制和整数之间的转换,可以手动进行转换计算。以下是一个简单的示例,展示如何实现这种转换:

  1. 整数转换为十六进制字符串:
def int_to_hex(num):
    hex_chars = "0123456789abcdef"
    hex_string = ""

    while num > 0:
        remainder = num % 16
        hex_string = hex_chars[remainder] + hex_string
        num = num // 16

    if hex_string == "":
        hex_string = "0"

    return "0x" + hex_string

num = 255
hex_string = int_to_hex(num)
print(hex_string)  # 输出 '0xff'
  1. 十六进制字符串转换为整数:
import sys


def hex_to_int(hex_string):
    hex_string = hex_string[0].lower()
    hex_chars = "0123456789abcdef"
    result = 0

    for char in hex_string[2:]:  # 从第三个字符开始,跳过 '0x'
        result = result * 16 + hex_chars.index(char)

    return result


for line in sys.stdin:
    a = line.split()
    print(hex_to_int(a))
def hex_to_int(hex_string):
    hex_chars = "0123456789abcdef"
    result = 0

    for char in hex_string[2:]:  # 从第三个字符开始,跳过 '0x'
        result = result * 16 + hex_chars.index(char)

    return result

hex_string = '0xff'
num = hex_to_int(hex_string)
print(num)  # 输出 255

通过这种手动实现的方式,你可以完成十六进制和整数之间的相互转换,而不依赖于内置函数。