【摘要】:将无符号数a循环右移n位,即将a中原来左端位右移n位,原来右端n位移到最左端n位。输入的8进制数是1614,对应2进制数是0000 0011 1000 1100,右循环3位后的2进制数是:1000 0000 0111 0001,对应的8进制数是100161。题目分三步进行:将a的右端n位先放到b中的高n位中,实现语句为b=a<<;将a右移n位,其左面高位n位补0,实现语句为c=a>>n;最后c与b进行按位或运算,即c=c|b。
9.2 位运算应用
【例9.1】位运算的简单应用。
运行结果如图9-1所示。
图9-1
分析:
计算过程:
【例9.2】将无符号数a循环右移n位,即将a中原来左端(16-n)位右移n位,原来右端n位移到最左端n位。
运行结果如图9-2所示。
图9-2
分析:
输入的8进制数是1614,对应2进制数是0000 0011 1000 1100,右循环3位后的2进制数是:1000 0000 0111 0001,对应的8进制数是100161。
题目分三步进行:将a的右端n位先放到b中的高n位中,实现语句为b=a<<(16-n);将a右移n位,其左面高位n位补0,实现语句为c=a>>n;最后c与b进行按位或运算,即c=c|b。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。