我正在使用python进行一次测试:
print struct.pack('1H', 101000)
它向我显示了这个错误:
struct.error: ushort format requires 0 <= number <= USHRT_MAX
我对此感到困惑,因为我知道1H表示无符号短路,这意味着可以使用第一位,因此1H的最大范围应为0 <=数字&lt; =(2 <&lt; 16) - 1(表示131071),为什么它会显示这个错误?
答案 0 :(得分:6)
最大值不是(2<<16) - 1
,而是2 ^ 16 - 1.或者,如果您希望将其写为班次,(1<<16) - 1
。二号已经向左移一个位置。无符号短路(16位)的最大值为65535。