21xrx.com
2024-06-03 06:17:40 Monday
登录
文章检索 我的文章 写文章
C++编写进制转换程序:从十进制转换成二进制、八进制和十六进制
2023-07-09 20:56:30 深夜i     --     --
C++ 进制转换 十进制 二进制 八进制 十六进制

在计算机科学中,进制转换经常用到。C++语言可以很好的实现这个功能。本文将介绍如何使用C++编写一个将十进制数转换成二进制、八进制和十六进制的程序。

首先需要明确的是,十进制数的转换方法是相似的,只是基数的不同。因此,可以使用同样的方法来实现这些转换。

1.十进制转二进制

将十进制数不断除以2,余数为0时写下0,余数为1时写下1,直到商为0为止。然后将上面写下来的1和0倒过来就是二进制数。代码实现如下:


void decimalToBinary(int decimalNumber)

{

  int binaryNumber[1000];

  int i = 0;

  while(decimalNumber != 0)

  {

    binaryNumber[i] = decimalNumber % 2;

    decimalNumber = decimalNumber / 2;

    i++;

  }

  for(int j = i - 1; j >= 0; j--)

  {

    cout<<binaryNumber[j];

  }

  cout<<endl;

}

2.十进制转八进制

将十进制数不断除以8,余数为0时写下0,余数为1时写下1,余数为2时写下2,余数为3时写下3,余数为4时写下4,余数为5时写下5,余数为6时写下6,余数为7时写下7,直到商为0为止。然后将上面写下来的数字倒过来就是八进制数。代码实现如下:


void decimalToOctal(int decimalNumber)

{

  int octalNumber[1000];

  int i = 0;

  while(decimalNumber != 0)

  {

    octalNumber[i] = decimalNumber % 8;

    decimalNumber = decimalNumber / 8;

    i++;

  }

  for(int j = i - 1; j >= 0; j--)

  {

    cout<<octalNumber[j];

  }

  cout<<endl;

}

3.十进制转十六进制

将十进制数不断除以16,余数为0时写下0,余数为1时写下1,余数为2时写下2,余数为3时写下3,余数为4时写下4,余数为5时写下5,余数为6时写下6,余数为7时写下7,余数为8时写下8,余数为9时写下9,余数为10时写下A,余数为11时写下B,余数为12时写下C,余数为13时写下D,余数为14时写下E,余数为15时写下F,直到商为0为止。然后将上面写下来的数字倒过来就是十六进制数。代码实现如下:


void decimalToHexadecimal(int decimalNumber)

{

  char hexadecimalNumber[1000];

  int i = 0;

  while(decimalNumber != 0)

  {

    int remainder = decimalNumber % 16;

    if(remainder < 10)

    {

      hexadecimalNumber[i] = remainder + 48;

      i++;

    }

    else

    {

      hexadecimalNumber[i] = remainder + 55;

      i++;

    }

    decimalNumber = decimalNumber / 16;

  }

  for(int j = i - 1; j >= 0; j--)

  {

    cout<<hexadecimalNumber[j];

  }

  cout<<endl;

}

通过上述三个函数,可以很方便的实现从十进制数到二进制、八进制和十六进制的转换。

总之,进制转换是一个非常基础的问题,有时候也非常实用。C++可以很好的实现这个功能,需要我们有一定的数学知识和掌握一些C++的基本语法。希望本文对大家有所帮助。

  
  

评论区

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