int x = 2;x = rotateInt('L',x,1); // should return 4x = rotateInt('R',3); // should return 64
这是代码,有人可以检查它,让我知道错误是什么?
编译成功,但在执行时会显示Segmentation Fault.
int rotateInt(char direction,unsigned int x,int y){ int i; for(i = 0; i < y; i++) { if(direction == 'R') { if((x & 1) == 1) { x = x >> 1; x = (x ^ 128); } else x = x >> 1; } else if(direction == 'L') { if((x & 128) == 1) { x = x << 1; x = (x ^ 1); } else x = x << 1; } } return x; }解决方法 我试过我的电脑(MacBookPro / Core2Duo)并且它有效. 顺便问一下,你的目标架构是什么?当您使用C运算符“>>”时,一些(许多)处理器执行旋转而不是移位和“<<”. 总结
以上是内存溢出为你收集整理的C中的位移位全部内容,希望文章能够帮你解决C中的位移位所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)