练习2-6 编写一个函数setbits(x,p,n,y),将x中从第p位开始的n个(二进制)位设置为y中最右边n位的值

来源:互联网 发布:php addslashes和gpc 编辑:程序博客网 时间:2024/05/21 09:36
#include <stdio.h>unsigned setbits(unsigned x,unsigned y,int p,int n);main(){    unsigned x,y;    int p,n;    x=27;    y=111;    p=5;    n=3;    setbits(x,y,p,n);}unsigned setbits(unsigned x,unsigned y,int p,int n){    //return (x&~((~(~0<<n))<<(p-n+1))) | ((y<<(p-n+1))&((~(~0<<n))<<(p-n+1)));    return (x&~((~(~0<<n))<<(p-n+1))) | (y&~(~0<<n))<<(p+1-n);}/*x  y<<(p-n+1)  (~(~0<<n))<<(p-n+1) 0110  ~((~(~0<<n))<<(p-n+1)) 1001*/
0 0
原创粉丝点击