21xrx.com
2024-11-05 16:38:50 Tuesday
登录
文章检索 我的文章 写文章
C++实现任意进制转换 - 十进制转其他进制
2023-07-05 22:14:15 深夜i     --     --
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++实现十进制转其他进制的方法十分简单,只需遵循权值规则,实现轮询求余并映射到相应字符即可。希望本文能对大家有所帮助。

  
  

评论区

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