繁体   English   中英

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

[英]How to convert dec to hex in python?

当我尝试转换大数字时,我会在最后得到额外的数字,它们不会移动,再加上一个 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 - 10000000000000
while r < stop:
r = r + 50000000000000
hx = hex(r)[2:]
print(hx)

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

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

请注意,如果原始字符串没有至少四个字符,它将产生一个空字符串。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM