題目:輸入一個整數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);}
| 
 
 | 
新聞熱點
疑難解答