实例三:将n的k位清0

方法: result= n &~(1<<k) 使第k为变成0,再与运算,0和任何数进行与运算都是0。

解释:

       0000 0001 ---- 1

左移k位    0000 1000

取反操作   1111 0111

原数     1111 1111

取反后与原数进行与操作

结果     1111 0111 ---- k清零

int _tmain(int argc, _TCHAR* argv[])
{
  int n,k,nResult=0;

  cout << "请输入原始的值:";
  cin >> n;
  cout << endl << "请输入取反位数:";
  cin >> k;

  nResult = n &~(1<<k);
  cout <<endl<< "结果为:" << nResult;

  system("pause");
  return 0;
};

04-22 11:48