Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.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_Python 2.7_Struct - Fatal编程技术网

Python结构给出了不正确的长度

Python结构给出了不正确的长度,python,python-2.7,struct,Python,Python 2.7,Struct,python结构的几个问题。请让我知道什么是正确的 提到l/l的长度为4,但当使用calcsize检查时,它给出了8 >>> struct.calcsize('l') 8 结构模块calcsize给出了错误的大小。如果计算单个元素大小,则其总和为90,但与calcsize一起计算时,其总和为92 >>> struct.calcsize('8s2sIII30s32s6s') 92 >>> struct.calcsize('8s') 8

python结构的几个问题。请让我知道什么是正确的

  • 提到l/l的长度为4,但当使用calcsize检查时,它给出了8

    >>> struct.calcsize('l')
    8
    
  • 结构模块calcsize给出了错误的大小。如果计算单个元素大小,则其总和为90,但与calcsize一起计算时,其总和为92

    >>> struct.calcsize('8s2sIII30s32s6s')
    92
    
    >>> struct.calcsize('8s')
    8
    
    >>> struct.calcsize('2s')
    2
    
    >>> struct.calcsize('III')
    12
    
    >>> struct.calcsize('30s')
    30
    
    >>> struct.calcsize('32s')
    32
    
    >>> struct.calcsize('6s')
    6
    

  • 详细说明jonrsharpe在评论中发布的答案

  • “标准大小”列是指使用标准大小时压缩值的大小(以字节为单位);也就是说,当格式字符串以“”和“”中的一个开头时或“=”。使用本机大小时,压缩值的大小取决于平台

    >>> struct.calcsize('l')
    8
    
    >>> struct.calcsize('=l')
    4
    
  • 因为填充物。Use=不使用填充

    >>> struct.calcsize('=8s2sIII30s32s6s')
    90
    

  • 1.“当使用标准大小时,‘标准大小’列是指压缩值的大小(以字节为单位);也就是说,当格式字符串以“”、“!”或“=”之一开头时。当使用本机大小时,压缩值的大小取决于平台。”2。因为我明白了。我应该更加注意文档@请加上这个作为答案。我愿意接受这个答案。