当前位置: 代码迷 >> C语言 >> 关于unsigned char移位的疑惑
  详细解决方案

关于unsigned char移位的疑惑

热度:599   发布时间:2007-11-22 19:23:32.0
关于unsigned char移位的疑惑
定义一个unsigned int的数,将它用<<或>> 移动32位,为什么不是0,而是不变
搜索更多相关的解决方案: unsigned  char  移位  定义  int  

----------------解决方案--------------------------------------------------------
错了 ,不是unsigned char 而是unsigned int
----------------解决方案--------------------------------------------------------
因为int是32位的所以最多只能移动31位
大于31位的移动估计是对32取模再移动的.32%32=0,结果不移动
----------------解决方案--------------------------------------------------------
对于左移或右移运算符,移动的位数最好要少于运算符左操作数所占的二进制位数
----------------解决方案--------------------------------------------------------
  相关解决方案