# Write a function that does a decimal to hexadecimal conversion.
# Hint: Make use of "%x" for hexadecimal format.
def dec2hex(num):
return "%x" % num
我的回答是22而不是0x22。为什么呢?
答案 0 :(得分:2)
如果你想要一个前缀,你使用了错误的方法;你给出的格式只能将整数直接转换为十六进制而不带任何前缀或填充。
您可以使用hex()
function返回带有0x
前缀且无填充的十六进制表示:
>>> hex(34)
'0x22'
或者您可以使用format()
function和#x
格式:
>>> format(34, '#x')
'0x22'
您想要前缀的#
信号。您也可以要求它提供0-padding,但您需要指定包含前缀的字段宽度:
>>> format(34, '#06x')
'0x0022'
此处06
将字段填充为6个字符,包括前缀为2的字符。
如果您唯一的选择是使用%
string formatting operation,您仍然可以使用相同的技巧
>>> '%#x' % 34
'0x22'
并且填充仍然可用,具有相同的宽度警告:
>>> '%#06x' % 34
'0x0022'