Incrementing (iterating) between two hex values in Python
17,202
Just treat the values as integers, and use xrange()
to range over the two values. Use format(value, 'X')
to display it as hex:
start = 0x30D681 # hex literal, gives us a regular integer
end = 0x3227FF
for i in xrange(start, end + 1):
print format(i, 'X')
If your start and end values were entered as hexadecimal strings, use int(hexvalue, 16)
to turn those into integers first:
start = int('30D681', 16)
end = int('3227FF', 16)
Author by
user2188291
Updated on June 22, 2022Comments
-
user2188291 almost 2 years
I'm learning Python (slowly but surely) but need to write a program that (among other things) increments between two hex values e.g. 30D681 and 3227FF. I'm having trouble finding the best way to do this. So far I have seen a snippet of code on here that separates the hex into 30, D6 and 81, then works like this-
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()
Is there a simpler way of incrementing the whole value, e.g. something like
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()
Apologies for my complete ignorance, I really have tried Googling the answer but couldn't find it...