如何將一個十進位制數對應的二進位制數的任意 一位置零或一
阿新 • • 發佈:2018-12-26
環境: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;
}