Python中两个十六进制值之间的递增(迭代)
我正在学习Python(缓慢但肯定),但需要编写一个在两个十六进制值(例如30D681和3227FF)之间递增的程序。 我很难找到最好的方法。到目前为止,我在这里看到了一段代码,它将十六进制分为30、D6和81,然后像这样工作-Python中两个十六进制值之间的递增(迭代),python,hex,iteration,increment,Python,Hex,Iteration,Increment,我正在学习Python(缓慢但肯定),但需要编写一个在两个十六进制值(例如30D681和3227FF)之间递增的程序。 我很难找到最好的方法。到目前为止,我在这里看到了一段代码,它将十六进制分为30、D6和81,然后像这样工作- char = 30 char2 = D6 char3 = 81 def doublehex(): global char,char2,char3 for x in range(255): char = char + 1
char = 30
char2 = D6
char3 = 81
def doublehex():
global char,char2,char3
for x in range(255):
char = char + 1
a = str(chr(char)).encode("hex")
for p in range(255):
char2 = char2 + 1
b = str(chr(char2)).encode("hex")
for y in range(255):
char3 = char3 + 1
b = str(chr(char2)).encode("hex")
c = a+" "+b
print "test:%s"%(c)
doublehex()
是否有更简单的方法增加整个值,例如
char = 30D681
char2 = 3227FF
def doublehex():
global char,char2
for x in range(255):
char = char + 1
a = str(chr(char)).encode("hex")
for p in range(255):
char2 = char2 + 1
b = str(chr(char2)).encode("hex")
c = a+" "+b
print "test:%s"%(c)
doublehex()
抱歉,我完全不知道,我确实尝试过用谷歌搜索答案,但找不到它…只需将这些值视为整数,然后使用
xrange()
对这两个值进行取值。使用格式(值'X')
将其显示为十六进制:
start = 0x30D681 # hex literal, gives us a regular integer
end = 0x3227FF
for i in xrange(start, end + 1):
print format(i, 'X')
如果起始值和结束值是以十六进制字符串形式输入的,请先使用int(hexvalue,16)
将其转换为整数:
start = int('30D681', 16)
end = int('3227FF', 16)
非常感谢你,马蒂恩。我知道会有一个更简单的方法