【发布时间】:2009-05-13 20:12:18
【问题描述】:
假设我想以二进制计数,直到我拥有一组字节数可以容纳的最高数字,我该怎么做?感觉应该有一个非常简单的方法,我只是不知道。我用谷歌搜索,但很惊讶没有找到任何示例。
例如,如果我想计数到 1 个字节,我会从 00000001 开始,加 1 得到 00000010,加 1 得到 00000011,依此类推,直到得到 11111111。
另外,你怎么能用十六进制做同样的事情?你从 0x00 开始,加一并输出 0x01、0x02、0x03 等,直到你到达 0xFF?
另外,如何将值输出为字符串(如我的示例)?
一些伪代码:
byteSize = 3
counter = 0
while counter.size <= byteSize
print counter /* prints 00000001, 00000010, etc.
count += 1
loop
更新:
我不仅关心在另一个基地中显示一个数字,这只是其中的一部分。我看到我的错误在于显示功能决定了数字的显示方式(正如杰里米指出的那样)。所以,这不是问题。
更新 2:
我保证我不是一个彻头彻尾的白痴。这是上下文:
从今天开始,我在 reddit 上看到了这篇文章: http://www.elliottkember.com/kember_identity.html
然后,这个: http://www.reddit.com/r/programming/comments/8iguu/md5_gamechallenge_for_you_reddit/
这导致了: http://www.olegkikin.com/md5game/
所以,我想你可以从不同的时间间隔开始数位,然后让他们运行。
【问题讨论】:
-
你的意思是“我如何将一个数字表示为一个不是 10 的基数的字符串?”?
-
没有理由计算位来生成 MD5,只需从一个随机的 32 字节字符串开始并对其执行散列,因为这将是您的“最佳”机会。找到一个确切的身份将需要连续 5 次赢得 Megamillions 彩票的好运——这当然假设恰好存在 1 个固定点(据我们所知,一开始就存在一个固定点的可能性只有 67%)跨度>
-
@John,我不在乎该值是否确实存在,或者是否可以找到。应该很有趣。