当前位置: 首页 > 知识库问答 >
问题:

生成除提供的十六进制以外的所有十六进制的列表

糜昌胤
2023-03-14

我必须生成一个从\x00到\xff的所有十六进制列表,但用户提供的十六进制除外。

示例:

GenerateHex.py 00,03

\X01\X02\X04\X05\X06\X07\X08\X09\X0A\X0B\X0C\X0D\X0E\X0F\X10\X11\X12\X14\X15\X17\X18\X19\X1A\X1B\X1B\X1F\X20\X21\X22\X25\X26\X28\X29\X2A\X2B\X2B\X30\X31\X32\X35\X37\X38\X39\X3A\X3B\X3C\X3D\X3D\X3D\X3D\X3D\X3D\X3D\X3D\X3D\\xfc\xfd\xfe\xff

我现在使用了以下代码片段:

#!/usr/bin/python

import sys

if (sys.argv[1]):
    bad_chars = sys.argv[1].split(',')
else:
    print "You must provide the characters that you don't want in the output!"

hex = ["\\x" + format(x, '02x') for x in range(0,256) if (format(x, '02x') not in bad_chars)]

print ''.join(hex)

我现在想要的是,每打印10个十六进制,就输入一个换行符,并为每一行输入双引号,所以:

GenerateHex.py 00,03

“\X0C\X0D\X0E\X0F\X10\X11\X12\X13\X14\X15”

“\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f”

等等,也许行之间没有额外的换行符。

共有1个答案

韶浩皛
2023-03-14

itertools中有一个有用的grouper配方可以处理此问题:

from itertools import izip_longest

def grouper(iterable, n, fillvalue=None):
    "Collect data into fixed-length chunks or blocks"
    # grouper('ABCDEFG', 3, 'x') --> ABC DEF Gxx
    args = [iter(iterable)] * n
    return izip_longest(fillvalue=fillvalue, *args)

for row in grouper(hex_, 10, ""):
    print "".join(row)

注意,您不应该将列表命名为hex,因为这会遮蔽内置函数。

 类似资料:
  • 问题内容: 如何将十进制转换为以下格式的十六进制(至少两位,零填充,没有0x前缀)? 输入: 输出: 输入: 输出: 我尝试过,但似乎它显示了第一个示例,但没有显示第二个示例。 问题答案: 将该功能与格式一起使用。 该部分要求使用至少2位数字,并使用零将其填充到长度,表示小写的十六进制。 的 格式规范的迷你语言 也给你大写十六进制输出,并且可以前缀字段宽度与以包括或前缀(取决于你阉羊使用或作为格式

  • 问题内容: 如何将RGB格式的颜色转换为十六进制格式,反之亦然? 例如,转换为。 问题答案: 注 :这两个版本的期待整数值,并且,所以你需要,如果你有非整数值做自己的舍入。 以下将执行RGB到十六进制的转换,并添加任何所需的零填充: 转换另一种方式: 最后,在答案中讨论并在@cwolves的评论中建议使用的替代版本: 更新 这是它的一个版本,还解析了一个速记的三元组,例如“#03F”:

  • Python3 实例 以下代码用于实现十进制转二进制、八进制、十六进制: # -*- coding: UTF-8 -*- # Filename : test.py # author by : www.runoob.com # 获取用户输入十进制数 dec = int(input("输入数字:")) print("十进制数为:", dec) print("转换为二进制为:", bin(dec

  • 问题内容: 我有一个代表2的补码的十六进制字符串。是否有一种简单的方法(库/函数)将十六进制转换为十进制而不直接使用其位? EG这是给定左侧十六进制的预期输出: 谢谢! 问题答案: 这似乎在欺骗Java转换数字而不强制给出正结果: 当然,这种情况仅适用于8、16、32和64位2的补码:

  • 问题内容: 我有一个家庭作业,需要在十进制,二进制和十六进制之间进行三向转换。我需要帮助的功能是将十进制转换为十六进制。我几乎不了解十六进制,但是如何将十进制转换为十六进制。我需要一个接受并返回的函数。不幸的是我没有此功能的任何草稿,我完全迷路了。我只有这个。 另外,我不能使用诸如Integer.toHexString()之类的预制函数或任何其他东西,我需要真正地制作算法,否则我什么都不会学。 问

  • 我需要转换十六进制- 当我运行这个错误实际上是显示我需要的值但我不能得到它 groovy.lang.的方法:静态java.lang.我nteger.parseInt()适用于参数类型:(java.math.大整数,java.lang.整数)值:[28855032353026779507009821653742961358,...]可能的解决方案:parseInt(java.lang.String,