2013-07-19 20 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

相關問題