如何在Python中将十六进制字符串转换为int?
我可以把它作为" 0xffff"或只是" ffff".
我有一个二进制文件,我必须解析,我正在使用Python.有没有办法获取4个字节并将其转换为单精度浮点数?
我是最新的;我正致力于加密/解密程序,我需要能够将字节转换为整数.我知道:
bytes([3]) = b'\x03'
Run Code Online (Sandbox Code Playgroud)
然而,我无法找到如何做反过来.我做错了什么?
如何将(大端)可变大小的二进制字节数组转换为(无符号)整数/长?例如,'\x11\x34'代表4404
现在,我正在使用
def bytes_to_int(bytes):
return int(bytes.encode('hex'), 16)
Run Code Online (Sandbox Code Playgroud)
哪个小而且有点可读,但可能效率不高.有更好的(更明显的)方式吗?
我正在阅读二进制文件(在这种情况下为jpg),并且需要在该文件中找到一些值.对于那些感兴趣的人,二进制文件是一个jpg,我试图通过查找这里详述的二进制结构来挑选它的维度.
我需要在二进制数据中找到FFC0,跳过一些字节数,然后读取4个字节(这应该给我图像尺寸).
在二进制数据中搜索值的好方法是什么?有没有相当于'发现',或类似的东西?
我已经使用波形模块从波形文件中读取样本,但它将样本作为字符串给出,它不在波形中,因此它是小端(例如,\x00).
将此转换为python整数或numpy.int16类型的最简单方法是什么?(它最终将成为numpy.int16,所以直接进入那里很好).
代码需要适用于小端和大端处理器.
我正在寻找一个采用任意长度 bytes对象的函数,并将其转换为int.显然,字节顺序是此函数的必需参数.
我敢肯定,我遇到了无论是内置bytes或int,但无法找到它了.关于使用struct和手动枚举各个字节值的类似问题,有很多答案.有没有使用类似C的假设/模块进行转换的内置函数?
def int(bytes, 'little') -> int
Run Code Online (Sandbox Code Playgroud) 我有一个array4 的值bytes,我需要将其值打印为Integer. 这在 C 语言中非常简单,因为我可以使用如下所示的方法进行转换和打印:
printf("Integer Value = %i", (int) pointer_to_4_bytes_array);
Run Code Online (Sandbox Code Playgroud)
谢谢。
我有两个bytearrays:
ba1 = bytearray(b'abcdefg')
ba2 = bytearray(b'X')
Run Code Online (Sandbox Code Playgroud)
我怎样才能插入("前置")ba2的ba1?
我试着这样做:
ba1.insert(0, ba2)
Run Code Online (Sandbox Code Playgroud)
但这似乎不正确.
我当然可以这样做:
ba2.extend(ba1)
ba1 = ba2
Run Code Online (Sandbox Code Playgroud)
但是如果ba1非常大呢?这是否意味着整体上不必要的应对ba1?这个记忆效率高吗?
我怎么能预装一个bytearray?
我有下一个价值
value = bytearray(b'\x85\x13\xbd|\xfb\xbc\xc3\x95\xbeL6L\xfa\xbf0U_`$]\xca\xee]z\xef\xa0\xd6(\x15\x8b\xca\x0e\x1f7\xa9\xf0\xa4\x98\xc5\xdf\xcdM5\xef\xc2\x052`\xeb\x13\xd9\x99B.\x95\xb2\xbd\x96\xd9\x14\xe6F\x9e\xfd\xd8\x00')
Run Code Online (Sandbox Code Playgroud)
当我尝试在python3.x中进行转换时,它运行良好.
>>> int.from_bytes(value, byteorder='little')
2909369579440607969688280064437289348250138784421305732473112318543540722321676649649580720015118044118243611774710427666475769804427735898727217762490192773
Run Code Online (Sandbox Code Playgroud)
如何在python2.7中转换它?我已经读过将一串字节转换为int(python)
struct.unpack(fmt, value)[0]
Run Code Online (Sandbox Code Playgroud)
但不知道如何处理fmt.
我生成了一个随机的 16 字节字符串。它看起来像这样:
b'\xb68 \xe9L\xbd\x97\xe0\xd6Q\x91c\t\xc3z\\'
Run Code Online (Sandbox Code Playgroud)
我想将其转换为(正)整数。在 Python 中执行此操作的最佳方法是什么?
我很感激你的帮助。
python ×11
int ×4
python-3.x ×4
binary ×2
byte ×2
string ×2
arrays ×1
bytearray ×1
endianness ×1
hex ×1
numpy ×1
python-2.7 ×1
random ×1
search ×1
wav ×1