21xrx.com
2024-11-22 08:04:40 Friday
登录
文章检索 我的文章 写文章
C++实现数制转换的代码
2023-07-04 18:38:24 深夜i     --     --
C++ 数制转换 代码

数制转换是计算机科学中非常基础的知识之一。在实际编写程序时,经常需要对不同数制之间进行转换。本篇文章将介绍如何用C++实现简单的数制转换操作。

1. 二进制转十进制

二进制转换成十进制可以通过乘法和加法实现。比如1101(二进制)转换为十进制的过程如下:

1 x 2^3 + 1 x 2^2 + 0 x 2^1 + 1 x 2^0= 8 + 4 + 0 + 1 = 13

以下是C++实现的代码:

int binaryToDecimal(int binary) {

  int decimal = 0;

  int base = 1;

  while (binary > 0) {

    int lastDigit = binary % 10;

    binary = binary / 10;

    decimal += lastDigit * base;

    base *= 2;

  }

  return decimal;

}

2. 十进制转二进制

十进制转换成二进制可以通过除以2和取余数实现。比如13(十进制)转换为二进制的过程如下:

13 / 2 = 6...1

6 / 2 = 3...0

3 / 2 = 1...1

1 / 2 = 0...1

所以13(十进制)转换成二进制为1101。

以下是C++实现的代码:

int decimalToBinary(int decimal) {

  int binary = 0;

  int base = 1;

  while (decimal > 0) {

    int lastDigit = decimal % 2;

    decimal = decimal / 2;

    binary += lastDigit * base;

    base *= 10;

  }

  return binary;

}

3. 十进制转十六进制

十进制转换成十六进制可以通过连续除以16并将余数转换为十六进制下的数位实现。比如289(十进制)转换为十六进制的过程如下:

289 / 16 = 18...1

18 / 16 = 1...2

1 / 16 = 0...1

所以289(十进制)转换成十六进制为121。

以下是C++实现的代码:

string decimalToHexadecimal(int decimal) {

  string hexadecimal = "";

  while (decimal > 0) {

    int remainder = decimal % 16;

    decimal = decimal / 16;

    if (remainder < 10) {

      // 将余数转换为0-9的字符

      hexadecimal = (char)(remainder + '0') + hexadecimal;

    } else {

      // 将余数转换为A-F的字符

      hexadecimal = (char)(remainder - 10 + 'A') + hexadecimal;

    }

  }

  return hexadecimal;

}

这就是用C++实现数制转换的方法和代码。当然,实际上还有其他数制之间的转换方法,比如二进制转八进制、八进制转十进制、十六进制转二进制等等,有兴趣可以自行了解。

  
  

评论区

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