21xrx.com
2025-03-31 22:57:30 Monday
文章检索 我的文章 写文章
C++实现任意进制转换 - 十进制转其他进制
2023-07-05 22:14:15 深夜i     20     0
C++ 进制转换 十进制 其他进制 实现

在计算机科学中,进制转换是一项基础操作,同时也广泛应用于计算机编程中。其中,十进制转其他进制是一种常见的转换方式,本文将介绍如何使用C++实现此种转换。

首先,我们需要了解各进制的权值规则。以十进制为例,从右向左数每一位的权值分别是10^0、10^1、10^2...,对于其他进制,规则相同,只是权值的基数不同。

现在,我们来看看具体的代码实现。首先,我们需要定义一个函数,包含三个参数:要转换的十进制数(int型),要转换成的进制数(int型),输出结果(string型)。代码如下:

void convert(int decimal, int radix, string& result) {
  while (decimal > 0) {
    int remainder = decimal % radix;
    if (remainder < 10) {
      result = to_string(remainder) + result;
    } else {
      result = char(remainder - 10 + 'a') + result;
    }
    decimal /= radix;
  }
}

接下来,我们可以在main函数中调用该函数,并输出结果。代码如下:

int main() {
  int decimal = 123;
  int radix = 2;
  string result = "";
  convert(decimal, radix, result);
  cout << "The result is " << result << endl;
  return 0;
}

运行该程序会输出“1111011”,即十进制数123转换成二进制的结果。

需要注意的是,该代码只能转换无符号整数类型,如果需要转换负数,可先将其转换成补码形式再进行转换。

综上所述,通过C++实现十进制转其他进制的方法十分简单,只需遵循权值规则,实现轮询求余并映射到相应字符即可。希望本文能对大家有所帮助。

  
  

评论区

请求出错了