The C Programming Language 练习题2-6
2017-10-06 00:10
232 查看
题目
编写一个函数 setbits(x, p, n, y),该函数返回对x执行下列操作后的结果值:将x中从第p位开始的n个(二进制)位设置为y中最右边n位的值,x的其余各位保持不变。
题目分析
题目没说从第p位开始是向右还是向左,假设向左。
代码实现
编写一个函数 setbits(x, p, n, y),该函数返回对x执行下列操作后的结果值:将x中从第p位开始的n个(二进制)位设置为y中最右边n位的值,x的其余各位保持不变。
题目分析
题目没说从第p位开始是向右还是向左,假设向左。
代码实现
#include <stdio.h> unsigned setbitstemp(unsigned x, int p, int n, unsigned y); int main() { int a, b; a = 335; b = 46; printf("x=%d\n", setbitstemp(a, 4, 3, b)); } unsigned setbitstemp(unsigned x, int p, int n, unsigned y) { int i, j, m; i = (x >> p) & (~0 << n); j = (y & ~(~0 << n)); m = i | j; x = (m << p) | (x & ~(~0 << p)); return x; }
相关文章推荐
- <<The C Programming Language>>学习之路-练习题参考答案 1-8
- The C Programming Language 练习题1-24
- <<The C Programming Language>>学习之路-练习题参考答案 1-9
- The C Programming Language 练习题2-8
- The C Programming Language 练习题4-6
- The C Programming Language 练习题1-21
- The C Programming Language 练习题2-2
- The C Programming Language 练习题3-1
- <<The C Programming Language>>学习之路-练习题参考答案 1-6
- <<The C Programming Language>>学习之路-练习题参考答案 1-12
- The C Programming Language 练习题1-22
- <<The C Programming Language>>学习之路-练习题参考答案 1-7
- The C Programming Language 练习题2-1
- The C Programming Language 练习题4-5
- <<The C Programming Language>>学习之路-练习题参考答案 1-10
- The C Programming Language 练习题2-9
- The C Programming Language 练习题3-2
- The C Programming Language 练习题3-3
- The C Programming Language 练习题4-3
- The C Programming Language 练习题2-3