位运算是信息奥赛中重要的一部分,由于位运算的速度比一般运算快,掌握了位运算,就能够在程序编写时更加灵活,提高程序效率,对解题有十分重要的帮助。 位运算的所有操作都是建立在二进制位上的,所以在学习位运算之前,请保证熟悉了二进制的基本运算法则以及基本的逻辑与、或、非运算。 一、位运算基本操作 1、左移操作 << 左移操作可以将二进制数a的每个数位均进行左移,并在移动后右边空出来的数位补0。 例如:a << b意为将二进制数a左移b个数位,在右边空出数位补0。假设a=101,b=1,则将二进制数a左移1位,右边空出来的数位补0,所以新数为1010,同理,a=101,b=2时的新数为10100,依次类推。 需要注意的是,二进制数左移n位等于对应的十进制数 * 2^n。例如二进制数101对应的十进制数是5,