如何在python中将dec转换为十六进制?

问题描述 投票:0回答:1

[当我尝试转换大数字时,最后得到的数字不会动,而且还有L字符。如何在000L末尾删除4个多余的字符?

8b8dbbc584d9c000L

8b8dc4ddd34c6000L

8b8dcdf621bf0000L

8b8dd70e7031a000L

8b8de026bea44000L

#!/usr/bin/python

import sys

def int_tuple_from_cmdline():
  """return exactly two integers form sys.argv
     or die with an error message
  """
  import sys
  args = sys.argv[1:] # drop first entry (progpath)
  if len(args) != 2:
      raise SystemExit("\n#################################################\n# Please enter both a 
start and stop parameter. #\n#################################################")
  for i in range(len(args)):
      try:
         args[i] = int(args[i])
      except ValueError:
         raise SystemExit("\n#################################################\n# Parameter %d is not an integer. You entered: %s #\n#################################################\n" %(i+1,args[i]))
  return tuple(args)

start, stop = int_tuple_from_cmdline()

r = start - 1
while r < stop:
r = r + 1 
hx = hex(r)[2:]
print(hx)
python hex decimal
1个回答
0
投票

如果您只是删除字符串的最后四个字符,则可以使用切片来执行:

s = "8b8dbbc584d9c000L"
trimmed = s[:-4] #8b8dbbc584d9c

请注意,如果原始字符串不包含至少四个字符,它将引发异常。

还请注意,我的答案与从十进制到十六进制的转换[本身]无关,我只是在回答它的修整部分。

© www.soinside.com 2019 - 2024. All rights reserved.