python struct.error:ushort格式要求0< = number< = USHRT_MAX

时间:2013-07-19 01:31:23

标签: python

我正在使用python进行一次测试:

print struct.pack('1H', 101000)

它向我显示了这个错误:

struct.error: ushort format requires 0 <= number <= USHRT_MAX

我对此感到困惑,因为我知道1H表示无符号短路,这意味着可以使用第一位,因此1H的最大范围应为0 <=数字&lt; =(2 <&lt; 16) - 1(表示131071),为什么它会显示这个错误?

1 个答案:

答案 0 :(得分:6)

最大值不是(2<<16) - 1,而是2 ^ 16 - 1.或者,如果您希望将其写为班次,(1<<16) - 1。二号已经向左移一个位置。无符号短路(16位)的最大值为65535。