我看过
What are bitwise shift (bit-shift) operators and how do they work?,但我仍然觉得比特移位的概念很难理解.
有人能指出我在C中进行位移的更基本指导的方向.我希望它会很长,因为它需要覆盖整个主题.
我真的不明白,但我想学习它,所以任何帮助将不胜感激.
我正在学习k& r,这就是这个,所以我可以做练习.我理解基础知识,但我仍然无法做正确的位移操作.
编辑这里是K& R的表现让我难过的
练习2-6:写一个函数setbits(x,p,n,y),它返回x,其中n位位于位置p,位于y的最右边n位,其他位保持不变.
练习2-7:写一个函数invert(x,n),其中n位以poisiton p反转开始(即1变为0,反之亦然),其他不变.
练习2-8:写一个函数rightrot(x,返回整数x的值,向右旋转n位位置
练习2-9:在二进制补码系统中,x& =(x-1)删除x中最右边的1位.解释原因,使用此观察来编写更快的bitcount版本
这些是来自k& R(c编程语言)书籍的练习,它是最好的c书,但是我在理解位移时遇到了麻烦,所以我遇到了这些练习的问题.