21xrx.com
2025-03-31 07:00:11 Monday
文章检索 我的文章 写文章
C++中实现十进制取反的方法
2023-07-06 07:55:13 深夜i     19     0
C++ 十进制 取反 方法 实现

在C++中实现十进制取反有多种方法,下面介绍其中的两种方法:

方法一:使用逐位取反的方法

逐位取反方法是一种最简单的方法。具体实现步骤如下:

1. 将目标数转化为二进制数。

2. 对二进制数的每一位进行逐一取反,即将0变为1,将1变为0。

3. 把取反后的二进制数转化为十进制数。

下面是基于逐位取反方法的C++实现代码:

#include <iostream>
#include <cmath>
using namespace std;
int main()
{
  int num, res = 0, i = 0;
  cout << "请输入目标十进制数:";
  cin >> num;
  while(num != 0)
  {
    res += pow(2, i) * (num % 2 == 0 ? 1 : 0);
    num /= 2;
    i++;
  }
  res = pow(2, i) - res - 1;
  cout << "取反结果为:" << res << endl;
  return 0;
}

方法二:使用位运算符^进行取反

在C++中,使用位运算符^对一个数进行按位取反。它的原理是,将一个数的每一位与1进行异或运算,可以将0变为1,将1变为0,从而实现取反的效果。

下面是使用位运算符^进行取反的C++实现代码:

#include <iostream>
using namespace std;
int main()
  int num;
  cout << "请输入目标十进制数:";
  cin >> num;
  num = ~num;
  cout << "取反结果为:" << num << endl;
  return 0;

总结:

以上就是两种在C++中实现十进制取反的方法,无论是使用逐位取反的方法还是使用位运算符^进行取反,都可以实现这一功能。需要根据实际情况选择合适的方法来解决问题。

  
  

评论区