1. 程式人生 > >如何將一個十進位制數對應的二進位制數的任意 一位置零或一

如何將一個十進位制數對應的二進位制數的任意 一位置零或一

環境: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; }