小序号2看不明白啥意思

img

考虑这样一个事实,对于二进制数1001011而言,删除右边x位就是将该数右移x位,取x=2,则新的数为10010,新的数和老的数有什么关系
想想十进制下63011001和右移2位后的630110有什么关系,会发现,右移等于除法,右移x位等于除以基数的x次幂,63011001除以10的二次幂就等于630110(这里是地板除,即除完之后舍弃小数,对应python的//运算符),同样的,对于二进制数1001011而言,删除右边x位等于除以2的x次幂。
所以代码逻辑显而易见
第1-3行处理输入n和x
第4行计算右移x位等价的除数
第5行计算右移x为后的整数
第6-10行输出一个整数的二进制形式