输入一个整数a,再输入两个整数p(p<32),v(0|1),将该整数a的p位设置为v,输出修改后的该整数的二进制表示.
#include <stdio.h>
void fun(int a, int p1, int v)
{
int i;
int temp;
printf("The result:");
int k = 32;
if (a < 0)
{
a = -a;
k--;
printf("1");
}
for (i = k; i >= 1; i--)
{
if (i % 4 == 0)
{
printf(" ");
}
if (i == (32 - p1 + 1))
{
printf("%d", v);
}
else
{
temp = (a >> (i - 1)) & 1;
printf("%c", (temp == 1) ? '1' : '0');
}
}
printf("\n");
}
int main()
{
int a;
int p1, p2;
printf("Please enter a number:");
scanf("%d", &a);
printf("Enter p1(p1,p2<32) and v(0|1):");
scanf("%d%d", &p1, &p2);
fun(a, p1, p2);
return 0;
}