第二句是将n右移一位之后再赋值给n。
C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。
C++不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。
比如原来n是8,他的二进制数为00001000,进行>>1右移一位后就是00000100,4了.
第二个就是将n与n-1进行相与操作.同时为1是1.例. n =7, n&=n-1就是n=n&(n-1)
00000111
& 00000110
---------------
00000110
不知道你看明白了吗?
移位
n的每一位右移1位
n&=n-1 应该是去并值 也就是n=n&n-1
是n=n&(n-1)吧
永远大于1!~~?~~~