admin 管理员组

文章数量: 1184232


2024年12月23日发(作者:float和int谁大)

c++进制转化代码

下面是一个示例的 C++ 代码,用于进行不同进制之间的转换:

```cpp

#include

using namespace std;

// 十进制转二进制

string decimalToBinary(int decimal) {

string binary = "";

while (decimal > 0) {

binary += to_string(decimal % 2);

decimal /= 2;

}

return reverse(binary);

}

// 十进制转八进制

string decimalToOctal(int decimal) {

string octal = "";

while (decimal > 0) {

octal += to_string(decimal % 8);

decimal /= 8;

}

return reverse(octal);

}

// 十进制转十六进制

string decimalToHexadecimal(int decimal) {

string hexadecimal = "";

while (decimal > 0) {

if (decimal % 16 < 10) {

hexadecimal += to_string(decimal % 16);

} else {

hexadecimal += char('A' + decimal % 16 - 10);

}

decimal /= 16;

}

return reverse(hexadecimal);

}

// 二进制转十进制

int binaryToDecimal(string binary) {

int decimal = 0;

for (int i = 0; i < (); i++) {

decimal += (binary[i] - '0') * pow(2, () - 1 - i);

}

return decimal;

}

// 八进制转十进制

int octalToDecimal(string octal) {

int decimal = 0;

for (int i = 0; i < (); i++) {

decimal += (octal[i] - '0') * pow(8, () - 1 - i);

}

return decimal;

}

// 十六进制转十进制

int hexadecimalToDecimal(string hexadecimal) {

int decimal = 0;

for (int i = 0; i < (); i++) {

if (hexadecimal[i] >= '0' && hexadecimal[i] <= '9') {

decimal += (hexadecimal[i] - '0') * pow(16, () -

1 - i);

} else if (hexadecimal[i] >= 'A' && hexadecimal[i] <= 'F') {

decimal += (hexadecimal[i] - 'A' + 10) * pow(16, ()

- 1 - i);

}

}

return decimal;

}

// 主函数

int main() {

int decimalNumber;

cout << "请输入一个十进制数: ";

cin >> decimalNumber;

cout << "十进制数 " << decimalNumber << " 转换为二进制为: " <<

decimalToBinary(decimalNumber) << endl;

cout << "十进制数 " << decimalNumber << " 转换为八进制为: " <<

decimalToOctal(decimalNumber) << endl;

cout << "十进制数 " << decimalNumber << " 转换为十六进制为: " <<

decimalToHexadecimal(decimalNumber) << endl;

string binaryNumber, octalNumber, hexadecimalNumber;

cout << "请输入一个二进制数: ";

cin >> binaryNumber;

cout << "二进制数 " << binaryNumber << " 转换为十进制为: " <<

binaryToDecimal(binaryNumber) << endl;

cout << "请输入一个八进制数: ";

cin >> octalNumber;

cout << "八进制数 " << octalNumber << " 转换为十进制为: " <<

octalToDecimal(octalNumber) << endl;

cout << "请输入一个十六进制数: ";

cin >> hexadecimalNumber;

cout << "十六进制数 " << hexadecimalNumber << " 转换为十进制为: " <<

hexadecimalToDecimal(hexadecimalNumber) << endl;

return 0;

}

```

在上述代码中,我们定义了三个函数 `decimalToBinary`、`decimalToOctal` 和

`decimalToHexadecimal`,用于将十进制数转换为二进制、八进制和十六进制数。这些函数

使用循环和字符串操作来完成转换。

然后,我们定义了三个相反的函数 `binaryToDecimal`、`octalToDecimal` 和

`hexadecimalToDecimal`,用于将二进制、八进制和十六进制数转换为十进制数。这些函数

使用字符串解析和数学运算来完成转换。

在 `main` 函数中,我们提供了用户输入和输出的界面,允许用户输入一个十进制数,

并选择将其转换为二进制、八进制或十六进制数。然后,用户可以输入一个二进制、八进制

或十六进制数,并选择将其转换为十进制数。

通过这个程序,用户可以方便地进行不同进制之间的转换,并查看转换结果。

请注意,这只是一个简单的示例程序,可能无法处理超大数或特殊情况。在实际应用中,

可能需要更复杂的算法和错误处理机制。


本文标签: 转换 输入 用户 可能 二进制