没什么区别temp<<=1意思就是temp = temp<<1,也就是temp自己放大2倍
也就是把temp<<1计算结果的返回值,保存在temp中
但是如果单纯的temp<<1操作,他的返回值是temp的2倍,但是temp本身的值没有变
所以俩个的区别就是,单步执行完操作,temp<<=1执行完,temp扩大2倍
temp<<1执行完,temp的值不变
前一个是吧temp中的值的二进制位向左移动一位,移动那位用0补,并把操作后的值赋予temp自身,第二个就是只操作不赋值!+=,—=,和这类符号一样!
temp<<=1等价于temp = temp<<1;//移位后赋值
temp<<1只是移位对temp本身没有任何影响