test18src.c

来源:互联网 发布:淘宝网店加盟商怎么样 编辑:程序博客网 时间:2024/05/16 05:59
#include <stdio.h>
/*将x的p位(从右边0起)的右边n位置为y的低n位*/
unsigned int setbits(unsigned int x, int p, int n, unsigned y);
int main(void)
{
unsigned int x = 017;
unsigned int y = 01;
printf( "%u\n", setbits( x, 3, 2, y) );
}
unsigned int setbits(unsigned int x, int p, int n, unsigned int y)
{
/*构造111111000011 再与上x 再或上00000(yn)00*/
/*y取低n位再左移p+1-n位*/
return ( x & ((~0 << (p+1)) | ~(~0 << (p+1-n))) ) | ( (y & ~(~0 << n)) << (p+1-n) );
/*总结 与1 或0*/
}
0 0
原创粉丝点击