关于unsigned char移位的疑惑
定义一个unsigned int的数,将它用<<或>> 移动32位,为什么不是0,而是不变
----------------解决方案--------------------------------------------------------
错了 ,不是unsigned char 而是unsigned int
----------------解决方案--------------------------------------------------------
因为int是32位的所以最多只能移动31位
大于31位的移动估计是对32取模再移动的.32%32=0,结果不移动
----------------解决方案--------------------------------------------------------
对于左移或右移运算符,移动的位数最好要少于运算符左操作数所占的二进制位数
----------------解决方案--------------------------------------------------------