练习 2-6 编写一个函数setbits(x, p, n, y),该函数返回对x执行下列操作后的结果值:将x中从第p位开始的n个(二进制)位设置为y中最右边n位的值,x的其余各位保持不变。

来源:互联网 发布:java多态的机制是什么 编辑:程序博客网 时间:2024/05/21 07:06

C语言程序设计(第二版) 练习2-6 个人设计

练习 2-6 编写一个函数 setbits(x, p, n, y),该函数返回对x执行下列操作后的结果值:将x中从第p位开始的n个(二进制)位设置为y中最右边n位的值,x的其余各位保持不变。

代码块

#include <stdio.h>unsigned setbits(unsigned x, int p, int n, unsigned y);main(){    int a, b, c;    a = 21;    b = 15;    c = setbits(a, 3, 3, b);    printf("%d\n", c);    return 0;}unsigned setbits(unsigned x, int p, int n, unsigned y){    return (x | ((y - ((y >> n) << n)) << (p+1-n)));}

如果程序设计有错误或更简洁的方法,欢迎并感谢您指正出示,谢谢!

阅读全文
0 0
原创粉丝点击