`
carolaif
  • 浏览: 71019 次
  • 性别: Icon_minigender_2
  • 来自: 大连
最近访客 更多访客>>
社区版块
存档分类
最新评论

C程序设计语言(第二版) 2-6

阅读更多

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

 

#include<stdio.h>
int setbits(int x,int p,int n,int y);

int main(){
	int x=10;
	int y=7;
	int yResult;
	int p=3;
	int n=2;
	yResult=setbits(x,p,n,y);
	printf("%d\n",yResult);
	return 0;
}

int setbits(int x,int p,int n,int y){
	int result;
	int tmp= (x>>p-n)& ~(~0<<n);
	result = ((y>>n)<<n) | tmp;
	return result;
}

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics