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异或可以直接取反,非常妙!
相关文章推荐
- C程序设计语言(第2版·新版)- 练习2-6
- 个人学习C程序设计语言(第2版·新版)笔记
- 练习1-21:编写程序entab,将空格串替换为最少数量的制表符和空格。。。(C程序设计语言 第2版)
- 【打基础】高级语言程序设计·厦大出版社 课后习题个人记录1
- 【打基础】高级语言程序设计·厦大出版社 课后习题个人记录4
- 练习2-3:十六进制数字字符串转换为等价整型值,字符串允许包含的数字包括:0~9、a~f、A~F、x、X(C程序设计语言 第2版)
- 练习1-13:编写一个程序,打印输入中单词长度的直方图(水平)(C程序设计语言 第2版)
- C程序设计语言(第二版.新版)练习1-10
- 练习1-16:修改打印最长文本行的程序的主程序main,使之可以打印任意长度的输入行的长度,并尽可能多地打印文本(C程序设计语言 第2版)
- 【打基础】高级语言程序设计·厦大出版社 课后习题个人记录2
- 【打基础】高级语言程序设计·厦大出版社 课后习题个人记录3
- 练习1-23:删去C语言程序中所有的注释语句(C程序设计语言 第2版)
- 练习1-12:编写一个程序,以每行一个单词的形式打印其输入(C程序设计语言 第2版)
- 【JAVA语言程序设计基础篇】--图形--练习绘制弧形
- C程序设计语言练习2-5
- C++程序设计语言练习5.12 对比string和C字符串的优劣
- 探索c++的函数pow()的实现方法·数学与程序设计的结合(zz)
- java 语言程序设计-李尊朝 第6章 类和对象 练习答案
- C程序设计语言练习3-4
- C程序设计语言(K&R) 笔记2