Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从位字符串到字节对象的Python转换(3.6.7)_Python_Python 3.x_Sockets_Integer_Integer Overflow - Fatal编程技术网

从位字符串到字节对象的Python转换(3.6.7)

从位字符串到字节对象的Python转换(3.6.7),python,python-3.x,sockets,integer,integer-overflow,Python,Python 3.x,Sockets,Integer,Integer Overflow,什么是pythonic方式将一个大位文本字符串转换为一个可以通过套接字发送的“bytes”对象 data=b'10100101100101' sock.sendto(范围(0,len(data),8)),(IP,PORT)中i的字节(int(data[i:i+8],2) 此方法当前溢出的数据超过40字节,但需要处理更长的块(约1200字节)。(大概是在整型铸造上) 我试过其他几种方法,但总是达不到目的 尝试将上面给出的数据转换为int,然后再转换为字节,一切正常: >>> da

什么是pythonic方式将一个大位文本字符串转换为一个可以通过套接字发送的“bytes”对象

data=b'10100101100101'

sock.sendto(范围(0,len(data),8)),(IP,PORT)中i的字节(int(data[i:i+8],2)

此方法当前溢出的数据超过40字节,但需要处理更长的块(约1200字节)。(大概是在整型铸造上)

我试过其他几种方法,但总是达不到目的

尝试将上面给出的
数据
转换为
int
,然后再转换为
字节
,一切正常:

>>> data=b'1010010110100101'
>>> len(data)
16
>>> type(data)
<class 'bytes'>
>>> bytes(int(data[0:8],2))
b'\x00\x00\x00\x00\x00\x00\x00\...
...0\x00\x00'
当尝试将
data2
打包到最大
int
大小时,也可能会得到
溢出错误(
ValueError:int()基必须>=2和>>字节(int(data2[:],36))
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
溢出错误:无法将“int”放入索引大小的整数中

Hey@Ramrod,你所说的
chokes
large
到底是什么意思?你还尝试过其他什么方法吗?嗨,Aleksander,large是公认的含糊不清的-正在更新这个问题。
b'10100101100101'
已经是一个字节对象了,没有“位文字”这样的东西字符串。这里的内容:
data=b'10100101100101'
是一个字节文字。您到底想发送什么?谢谢。另外,这很让人困惑:您只是将其转换为int,然后再转换回bytes?为什么?
>>data=b'10100101101000101'>>>键入(数据)
>>> data2=b'10100101101001011010101010101010101010101010101010101010'
>>> len(data2)
56
>>> bytes(int(data2[:],2))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
MemoryError
>>> int(data2[:],2)
46625523583593130
>>> bytes(int(data2[:],36))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OverflowError: cannot fit 'int' into an index-sized integer