您的位置:首页 > 其它

C程序设计语言(第2版·新版)- 练习2-7

2014-02-12 20:45 239 查看

C程序设计语言(第2版·新版)

练习2-7:编写一个函数invert(x, p, n),该函数返回对x执行下列操作后的结果值:将x中从第p位开始的n个(二进制)位求反(即,1变成0,0变成1),x的其余各位保持不变。

解答1:

(x | (~(~0<<n)<<(p+1-n))) & ~(x & (~(~0<<n)<<(p+1-n)));


解答2:

x^(~(~0<<n)<<(p+1-n));


解答1是自己写的,解答2是对应的习题解答书中的答案,相比之下解答2确实更加简洁,采用与1异或可以直接取反,非常妙!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐