21xrx.com
2024-11-22 09:38:53 Friday
登录
文章检索 我的文章 写文章
C++中如何进行进制转换?
2023-06-29 05:25:44 深夜i     --     --
C++ 进制转换

C++中进行进制转换是一个基本操作,主要有三种进制转换方式:十进制转二进制、二进制转十进制和十进制转十六进制。

1. 十进制转二进制

将十进制整数转换成二进制,可以使用“除2取余法”。步骤如下:

- 将十进制整数除以2,记录余数。

- 将商继续除以2,再记录余数。

- 重复上述操作直到商为0。

- 将所有余数倒序排列在一起即可。

以下是转换的C++代码:


void DecToBin(int num) {

  int binary[32], i = 0;

  while (num > 0) {

    binary[i] = num % 2;

    num = num / 2;

    i++;

  }

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

    cout << binary[j];

}

2. 二进制转十进制

将二进制转换成十进制,可以使用“权值法”。步骤如下:

- 从二进制数的右端开始,依次将每一位数字乘以2的幂次方,第一位幂次方为0,依次增加。

- 将所有乘积相加即可得到十进制值。

以下是转换的C++代码:


int BinToDec(string bin) {

  int decimal = 0;

  int power = 0;

  for (int i = bin.size() - 1; i >= 0; i--) {

    if (bin[i] == '1')

      decimal += pow(2, power);

    power++;

  }

  return decimal;

}

3. 十进制转十六进制

将十进制转换成十六进制,可以使用“余数法”。步骤如下:

- 将十进制整数不断除以16,记录余数。

- 当商为0时停止除法操作。

- 将所有余数倒序排列在一起即可。

以下是转换的C++代码:


void DecToHex(int num) {

  char hex[32];

  int i = 0, remainder;

  while (num > 0) {

    remainder = num % 16;

    if (remainder <= 9)

      hex[i] = remainder + 48;

    else

      hex[i] = remainder + 55;

    num = num / 16;

    i++;

  }

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

    cout << hex[j];

}

总结

C++中进行进制转换可以使用不同的方法,具体方法根据不同的进制类型决定。十进制转二进制、二进制转十进制和十进制转十六进制分别使用“除2取余法”、“权值法”和“余数法”。使用这些方法可以方便地进行进制转换,可以在编程中进行操作。

  
  

评论区

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