不对吧,左移应该是整体向左边移动,如y=x<<2,就是x的左边去掉2位,后边补2个0,结果应该是:01001100
你的例子我也没看懂,呵呵,移位运算是按位进行的,对于算数(逻辑)左移一位相当于乘以二(即如果0000 0001左移一位0000 0010),也就是说左移几位就在右边添加几个零,C中的标准移位不是循环的,因此有可能丢失数据。
如果 x=01010011;
那么 y = x<<2;
01010011 往左边移两位 如果 x 是 char 类型,也就是 01001100 溢出了,如果 x 是 int 类型,也就是 0000000101001100 ,位左移一位相当于x乘以 2,移两位等于x乘以 4.
垃圾教材误人子弟,我这本14年第三版的也是错的,18年三月第九次印刷的