2013-07-19 18 views
3

我使用蟒做一个测试:蟒struct.error:USHORT格式需要0 <=数<= USHRT_MAX

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

它显示我这个错误:

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

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

回答

6

最大值不是(2<<16) - 1,它是2^16 - 1。或者,如果您更愿意将它写为shift,(1<<16) - 1。第二名已经左移一位。无符号短(16位)的最大值为65535.

+0

非常感谢!这帮助我澄清了我的理解,尽管这是一个愚蠢的问题 – levi

相关问题