环境:vs2013
#include <stdio.h>
#include <windows.h>
void MoveSteps(int num, int size, int flag)
{
int tmp = 1;
tmp <<= size - 1;//将1移到要改的那一位上
if (flag == 1){
num = num | tmp;
}
else{
tmp = ~tmp;//因为置零,tmp取反后的二进制数就是要改的那一位为0,其他位都是一
num = num & tmp;
}
printf("%d\n", num);
}
int main()
{
int n = 0;//要改的数
int m = 0;//要改对应二进制数的哪一位
int flag = 0;//置零还是一
scanf("%d%d%d", &n, &m, &flag);
MoveSteps(n, m, flag);
system("pause");
return 0;
}