21xrx.com
2024-12-22 22:24:55 Sunday
登录
文章检索 我的文章 写文章
C++实现十进制转换为M进制
2023-07-07 11:32:26 深夜i     --     --
C++ 十进制 M进制 实现 转换

在编程中,经常需要将十进制数转换为其他进制数。其中,C++语言提供了一种简单、快捷的方法来实现十进制转换为M进制。在这篇文章中,我们将介绍如何使用C++来实现这个功能。

首先,让我们来看一下十进制转换为其他进制的基本原理。例如,我们要将10转换为二进制,可以按照以下步骤进行:

1.取10除以2的余数,得到0,将余数放在最后一个位置。

2.将10除以2的商得到5。

3.将5除以2的余数得到1,将余数放在倒数第二个位置。

4.将5除以2的商得到2。

5.将2除以2的余数得到0,将余数放在倒数第三个位置。

6.将2除以2的商得到1。

7.将1除以2的余数得到1,将余数放在倒数第四个位置。

8.将1除以2的商得到0,计算结束,二进制数为1010。

可以看出,将十进制数转换为M进制数的基本步骤就是不断地进行除M取余的运算,将得到的余数按相反的顺序排列即可。

在C++中,可以使用循环语句来实现这个过程。我们可以先定义一个数组来存储转换后的结果,然后使用while循环来不断进行除M取余的运算,将余数放在数组对应位置上,最后再反转数组中的元素顺序即可。

具体的实现代码如下:


#include <iostream>

using namespace std;

int main()

{

  int n, m;

  char ans[100];

  int cnt = 0;

  cout << "请输入一个十进制正整数n:";

  cin >> n;

  cout << "请输入转换后的进制数m:";

  cin >> m;

  while (n != 0) {

    int res = n % m;

    if (res >= 10) {

      ans[cnt] = char(res - 10 + 'A');

    } else {

      ans[cnt] = char(res + '0');

    }

    cnt++;

    n /= m;

  }

  cout << "转换后的" << m << "进制数为:";

  for (int i = cnt - 1; i >= 0; i--) {

    cout << ans[i];

  }

  cout << endl;

  return 0;

}

在这个代码中,我们首先定义了三个变量n、m和ans。其中,n用来存储用户输入的十进制正整数,m用来存储用户希望将其转换成的进制数,ans用来存储转换后的结果,并且使用char类型来存储转换后的进制数。另外,我们还定义了一个计数器cnt,用来记录转换后所得到的数字的位数。

接下来,我们使用while循环来进行除M取余的运算。每次取余的结果保存在ans数组中,同时计数器cnt自增。由于我们是从低位到高位进行转换的,所以转换完成后需要将ans数组中的元素顺序反转。

需要注意的是,当余数大于等于10时,应该将其转换成对应的字母(A~Z),而不是使用数字来表示。

最后,我们输出转换后的结果,程序运行结束。

总结:在实际的编程中,我们可以根据具体的需求,对上述代码进行相应的修改和调整。无论如何,掌握这种实现十进制转换为M进制的方法,对于C++编程的初学者而言是非常重要的。

  
  

评论区

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