首页 > 学院 > 开发设计 > 正文

位运算例题3

2019-11-11 07:24:30
字体:
来源:转载
供稿:网友

题目:输入一个整数a,再输入两个整数p(p<32),v(0|1),将该整数a的p位设置为v,输出修改后的该整数的二进制表示.

#include<stdio.h>int exchange(int num)                   //二进制输出函数{	int i;	i = num % 2;	if(num != 0 )	{		num /= 2;		exchange(num);                   //递归	}	PRintf("%d",i);}int main(){	int num, p, v,temp1,temp2,len,mask;	printf("Please enter a integer:/n");	scanf("%d",&num);	printf("Please enter other two integers(p<32,v=0/1):/n");	scanf("%d%d",&p,&v);			if(v == 0)                           //&0 将该位 置0	{		mask = 1;		mask <<= (p - 1);                 //将mask移到p位		mask = ~mask;                     //p位为0,其余为1 ,数不变		num &= mask;	}	else	{		mask = 1;                         //使用|运算将该位 置1		mask <<= (p - 1);		num |= ~(~mask);               	}	exchange(num);}


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表