/*输入一个整数a,再输入两个整数p{p<32},v{0|1},将该整数a的p位设置为v,输出修改后的该数的二进制表示*/
#include <stdio.h>
int main()
{
int a;
printf("please input a:\n");
scanf("%d",&a);
int p;
printf("please input p(p<32):\n");
scanf("%d",&p);
int v;
int i,m,temp;
printf("please input v(0|1):\n");
scanf("%d",&v);
while((v != 0)&&(v != 1))
{
while(getchar()!='\n');
printf("please input right v:\n");
scanf("%d",&v);
}
printf("输出的二进制为:");
for(i = 31;i >= 0;i--)
{
temp = (a >> i)&1;
m = i;
if(m == (31-p))
{
if(v == 0)
{
temp = 0;
}
if(v == 1)
{
temp = 1;
}
}
m = 0;
if((i+1)%4 == 0)
printf(" ");
printf("%c",(temp == 1)?'1':'0');
}
printf("B\n");
return 0;
}
#include <stdio.h>
int main()
{
int a;
printf("please input a:\n");
scanf("%d",&a);
int p;
printf("please input p(p<32):\n");
scanf("%d",&p);
int v;
int i,m,temp;
printf("please input v(0|1):\n");
scanf("%d",&v);
while((v != 0)&&(v != 1))
{
while(getchar()!='\n');
printf("please input right v:\n");
scanf("%d",&v);
}
printf("输出的二进制为:");
for(i = 31;i >= 0;i--)
{
temp = (a >> i)&1;
m = i;
if(m == (31-p))
{
if(v == 0)
{
temp = 0;
}
if(v == 1)
{
temp = 1;
}
}
m = 0;
if((i+1)%4 == 0)
printf(" ");
printf("%c",(temp == 1)?'1':'0');
}
printf("B\n");
return 0;
}