python中的十六进制到字符串格式转换
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python中的十六进制到字符串格式转换,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1082字,纯文字阅读大概需要2分钟。
内容图文
![python中的十六进制到字符串格式转换](/upload/InfoBanner/zyjiaocheng/751/fbe9f79439594eccb328830a650a1e94.jpg)
我曾经用以下方式生成随机字符串(现在我已切换到this method).
key = '%016x' % random.getrandbits(128)
这种方式生成的密钥通常是32个字符的字符串,但是一旦我有31个字符.
这是我没有得到的:为什么它是32个字符,而不是16个字符?一个十六进制数字是否需要打印一个字符?
所以如果我要求?6x – 不应该期望16个字符可能带有前导零吗?
为什么字符串legth并不总是一样?
测试用例
import random
import collections
stats = collections.defaultdict(int)
for i in range(1000000):
key = '%016x' % random.getrandbits(128)
length = len(key)
stats[length] += 1
for key in stats:
print key, ' ', stats[key]
打印:
32 937911
27 1
28 9
29 221
30 3735
31 58123
解决方法:
是的,但你正在使用的格式没有截断 – 你生成128个随机位,这需要(通常)32个十六进制数字来显示,而?6意味着至少16个十六进制数字,但不只是扔掉你需要额外的那些显示所有128位数字.如果那是你真正需要的,为什么不生成64个随机位?随机生成器的工作量减少,没有格式化问题.
为了满足您的好奇心,长度偶尔为31位,因为16位中的1位时间前4位将全部为0;实际上在256中有1次,所有前8位都是0,所以你只能获得30位数等等.你只需要16位数字,所以格式化的数量最少的是> = 16而不是要求截断你没有要求.
内容总结
以上是互联网集市为您收集整理的python中的十六进制到字符串格式转换全部内容,希望文章能够帮你解决python中的十六进制到字符串格式转换所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。