题目
输入一个非负整数,将其转换为小写十六进制字符串形式并输出。
输入格式:输入一行包含一个非负整数 n。
输出格式:输出转换后的小写十六进制字符串,末尾换行。
数据范围与约定:0 ≤ n ≤ 10^9。
思路与算法
1. 进制转换原理
除 16 取余,余数 0~9 映射为字符 '0'~'9',10~15 映射为 'a'~'f'。
2. 逆序组装
高位在后得到,输出时需要反转字符列表。
完整程序
def hex_digit(v):
return chr(ord('0') + v) if v < 10 else chr(ord('a') + v - 10)
n = int(input())
# 十进制转十六进制字符串
if n == 0:
print(0)
else:
s = []
x = n
while x > 0:
s.append(hex_digit(x & 0xF))
x //= 16
print("".join(reversed(s)))运行示例
输入:
255输出:
ff