草庐IT

python - 将每个字节与 0x71 异或

我需要从文件中读取一个字节,将其与0x71进行异或运算,然后将其写回另一个文件。但是,当我使用以下内容时,它只是将字节读取为字符串,因此xoring会产生问题。f=open('a.out','r')f.read(1)所以我最终在C中做了同样的事情。#includeintmain(){charbuffer[1]={0};FILE*fp=fopen("blah","rb");FILE*gp=fopen("a.out","wb");if(fp==NULL)printf("ERROROPENINGFILE\n");intrc;while((rc=fgetc(fp))!=EOF){printf(

Python 十六进制比较

我遇到了一个问题,希望有人能帮我解决!我有一个十六进制数='0x00000000'的字符串,这意味着:0x01000000=apple0x00010000=orange0x00000100=banana与这些的所有组合都是可能的。即,0x01010000=apple&orange我如何从我的字符串中确定它是什么水果?我制作了一本包含所有组合的字典,然后与它进行比较,它起作用了!但我想知道更好的方法。 最佳答案 通过使用int()内置函数并指定基数,将字符串转换为整数:>>>int('0x01010000',16)16842752现在

python - 将字节列表转换为字节字符串

我有以下字节列表:[b'S',b'\x00',b't',b'\x00',b'a',b'\x00',b'n',b'\x00',b'd',b'\x00',b'a',b'\x00',b'r',b'\x00',b'd',b'\x00',b'F',b'\x00',b'i',b'\x00',b'r',b'\x00',b'm',b'\x00',b'a',b'\x00',b't',b'\x00',b'a',b'\x00',b'.',b'\x00',b'i',b'\x00',b'n',b'\x00',b'o',b'\x00',b'y',b'\x02',b'\x03',b'S',b'\x00',b't',

python - 将 pandas dataframe 列从十六进制字符串转换为 int

我有一个非常大的数据框,我想避免遍历每一行,并希望将整个列从十六进制字符串转换为int。它不能使用astype正确处理字符串,但单个条目没有问题。有没有办法告诉astype数据类型是base16?IN:importpandasaspddf=pd.DataFrame(['1C8','0C3'],columns=['Command0'])df['Command0'].astype(int)OUT:ValueError:invalidliteralforint()withbase10:'1C8'这可行,但要避免行迭代。forindex,rowindf.iterrows():print(row

python - 在 python 中将负值打印为十六进制

我在C++中有以下代码片段:for(intx=-4;x它的输出是hexx-40xFFFFFFFChexx-30xFFFFFFFDhexx-20xFFFFFFFEhexx-10xFFFFFFFFhexx00x00000000hexx10x00000001hexx20x00000002hexx30x00000003hexx40x00000004如果我在python中尝试同样的事情:forxinrange(-4,5):print"hexx",x,hex(x)我得到以下内容hexx-4-0x4hexx-3-0x3hexx-2-0x2hexx-1-0x1hexx00x0hexx10x1hexx2

python - 从以两个十六进制字符串传输的 C double 转换

我第一天使用Python。我喜欢过滤C生成的跟踪文件。来自C的每个double在文件中被格式化为代表64位double的32位的两个十六进制字符串。例如1234567890.3(C双)内部文件:0xb49333330x41d26580我如何解析和组合它以进一步使用Pythonfloat?提前致谢 最佳答案 您可以使用struct,对“double”使用“d”修饰符:>>>importstruct>>>num1='0xb4933333'>>>num2='0x41d26580'>>>struct.unpack('!d',(num2[2:

python - 如何使用 Scapy 提取 TCP 数据包的 Raw

我使用了scapy模块的sniff函数。我的filter和prn函数运行良好。但是现在,我想提取TCP数据包的Raw并使用十六进制或二进制格式处理它。这是documentationscapy中的数据包类。我该怎么做?我试过printpacket[Raw]但它似乎被转换为ASCII或类似的东西。我想将其保存为十六进制或二进制。 最佳答案 您可以使用scapy.compat.raw获取数据包的原始字节1:fromscapy.allimportrawraw(packet)前者是跨版本兼容的,但如果你保证运行Python3并且不需要支持Py

Python - 如何逐字节编辑十六进制文件

我希望能够打开一个图像文件并逐字节添加十六进制值。我不知道该怎么做,谷歌搜索“python字节编辑”和“python字节数组”没有得出任何结果,令人惊讶。有人可以指出我需要使用的库、我可以通过谷歌搜索的具体方法或教程/指南吗? 最佳答案 Python标准库有mmap模块,可以用来做这件事。看看thedocumentation了解更多信息。 关于Python-如何逐字节编辑十六进制文件,我们在StackOverflow上找到一个类似的问题: https://st

python - 在 python 中将十六进制转换为 int

我正在通过USB从ADC读取8位值到我的计算机。一个python脚本在我的计算机上运行并连续显示8位值,这些值是十六进制形式。但是,当十六进制代码对应于ASCII代码时,python将显示ASCII字符而不是原始十六进制代码。我需要对传入的数据做些什么才能仅显示8位表示的整数?我不希望它是十六进制或ASCII。问题是这些值是用斜杠而不是熟悉的零输入的:'\xff'而不是'0xff'。如果我去:int('0xff',16)结果是255,但如果我尝试int('\xff',16)我得到一个错误:以16为底的int()的无效文字。有谁知道处理十六进制代码中的\x的简单方法(无需对字符串进行暴力

python - 'str' 对象没有属性 'decode'

我正在尝试将十六进制字符串解码为二进制值。我在互联网上找到了下面的命令来完成它,string_bin=string_1.decode('hex')但是我说错了'str'objecthasnoattrubute'decode'我正在使用pythonv3.4.1 最佳答案 你不能解码字符串对象;它们已经解码了。您将不得不使用不同的方法。您可以使用codecs.decode()function将hex用作编解码器:>>>importcodecs>>>codecs.decode('ab','hex')b'\xab'这适用于Binarytra