题目:输入一个整数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);}
新闻热点
疑难解答