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