Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.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 二进制数据的简单形式化定义_Python_C_Binary Data_Formal Languages - Fatal编程技术网

Python 二进制数据的简单形式化定义

Python 二进制数据的简单形式化定义,python,c,binary-data,formal-languages,Python,C,Binary Data,Formal Languages,我想用最简单的方式正式描述二进制数据。差不多 有什么好的定义我可以使用,或者至少从中得到一些启发 现在,我将由C结构定义的二进制数据发送到服务器,在服务器上使用struct模块用python对其进行解析。问题是,若二进制数据发生变化,我总是需要更改python解析器。所以我想我可以附加一些发送数据的格式定义。 我知道我可以直接使用python表示法,但可能还有比这个更小的东西。如果您追求的是更小的传输大小,那么如果您不发送格式说明符,您已经实现了。在传输的两端有一个明确定义的协议有助于避免发送格

我想用最简单的方式正式描述二进制数据。差不多

有什么好的定义我可以使用,或者至少从中得到一些启发

现在,我将由C结构定义的二进制数据发送到服务器,在服务器上使用struct模块用python对其进行解析。问题是,若二进制数据发生变化,我总是需要更改python解析器。所以我想我可以附加一些发送数据的格式定义。
我知道我可以直接使用python表示法,但可能还有比这个更小的东西。

如果您追求的是更小的传输大小,那么如果您不发送格式说明符,您已经实现了。在传输的两端有一个明确定义的协议有助于避免发送格式说明符。这就是互联网上几乎所有广泛使用的协议所做的。因此,双方都需要更改代码,但理想情况下,双方都应该使用相同的代码/库,因此您只需在一个地方更改代码,并将cnages分发到需要的地方。“二进制数据”通常意味着您不能对此作任何假设。以ftp中的ascii模式为例。它可能会弄乱空白。因此,除非您可以应用任何其他标签,否则它是二进制的。由于格式字符串是ASCII的有限子集,您可以将每个字符压缩为~4.7位,而不是通常的8位。@Kevin我想我会以类似的方式对类型的大小进行编码,但这种方法会更好。