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` 函数中,我们提供了用户输入和输出的界面,允许用户输入一个十进制数,
并选择将其转换为二进制、八进制或十六进制数。然后,用户可以输入一个二进制、八进制
或十六进制数,并选择将其转换为十进制数。
通过这个程序,用户可以方便地进行不同进制之间的转换,并查看转换结果。
请注意,这只是一个简单的示例程序,可能无法处理超大数或特殊情况。在实际应用中,
可能需要更复杂的算法和错误处理机制。
版权声明:本文标题:c++进制转化代码 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1735017100a1622894.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论