我对c#(以及一般的编程)还很陌生
我一直试图用forloop攻击这个但是我没有取得太大进展,因为它不仅仅是一个数字迭代它的十六进制而不是十进制
00000000000000000000000000000000
....
098f6bcd4621d373cade4e832627b4f6
...
ffffffffffffffffffffffffffffffff
答案 0 :(得分:3)
迭代每个可能的值,即16 32 次迭代,或约3x10 38 。
每秒10亿次迭代,这将花费你大约一万亿亿年: - )
如果你以某种方式获得永生,并且能够在50亿年的阳光下生存下来,那你就是这样做的。
1 /如果你有一个128或更好的位数据类型,只需从零开始计数并计数,每次都输出十六进制值。
val = 0
while val < 2**128: # watch out for wrapping
printline hex(val)
val = val + 1
2 /如果你必须从较小的数据类型(如单个字符)构建它:
# init to zero.
dim val[0..32]
foreach index 0..31:
val[index] = 0
# keep going till done.
while val[32] != 1:
# print current value.
foreach index 31..0:
print hex(val[index])
printline
# then increment it.
carry = 1
index = 0
while carry = 1:
val[index] = val[index] + carry
if val[index] != 16:
carry = 0
index = index + 1