21xrx.com
2024-12-22 18:18:10 Sunday
登录
文章检索 我的文章 写文章
C++中实现十进制取反的方法
2023-07-06 07:55:13 深夜i     --     --
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++中实现十进制取反的方法,无论是使用逐位取反的方法还是使用位运算符^进行取反,都可以实现这一功能。需要根据实际情况选择合适的方法来解决问题。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复