use*_*291 5 python iteration hex 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
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()
Run Code Online (Sandbox Code Playgroud)
有没有更简单的方法来增加整个价值,例如
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()
Run Code Online (Sandbox Code Playgroud)
对我完全无知道歉,我真的尝试过谷歌搜索但却找不到它......
只需将值视为整数,并使用xrange()范围超过这两个值.用于format(value, 'X')将其显示为十六进制:
start = 0x30D681 # hex literal, gives us a regular integer
end = 0x3227FF
for i in xrange(start, end + 1):
print format(i, 'X')
Run Code Online (Sandbox Code Playgroud)
如果您的起始值和结束值以十六进制字符串形式输入,int(hexvalue, 16)请先使用它们将其转换为整数:
start = int('30D681', 16)
end = int('3227FF', 16)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11565 次 |
| 最近记录: |