只有遇到负整数才需要无符号位移。
这时其实要先思考为什么会得到负整数,通常输入数据的部分有问题,最好做到直接输入正整型数。
实在不得已处理负整数,可以先struct.pack转成指定宽度字节,再unpack成需要的正数,再普通右移处理。
说白了就是:定义了带符号整数,则可以存储正负整数;定义的是无符号整数,则只可以存储正整数,但可存储的数值大了一倍,符号整数可以显示范围从-32768~32767,无符号整数可以显示范围从0~65535。首先Python里是没有 unsigned int 这种类型的数据的(据我所知没有)。所以你这个问题麻烦你下次出门右转问搞C语言的谢谢。
不过你既然问了我就告诉你吧,9就是+9,加号可以省略,平时我们写的时候都省略的,最正式的写法就是+9(如果你对这个有疑问可以回去问问你初中一年级的时候的数学老师)。
有符号十进制整数,就是说这个整数型变量,能表示正数也能表示负数,而无符号的就只能表示正数(或者只能表示负数)。