C++进制转换练习题
时间: 2024-08-14 12:04:22 浏览: 53
C++中的进制转换通常涉及到整数或字符类型的转换,常见的有从十进制转成其他进制(如二进制、八进制、十六进制),以及从其他进制转回十进制。这里有几个简单的练习题供参考:
1. **任务1:十进制转二进制** - 编写函数`intToBinary(int decimal)`,接收一个十进制整数作为输入,返回对应的二进制字符串表示。
```cpp
#include <iostream>
#include <string>
std::string intToBinary(int decimal);
```
```cpp
std::string intToBinary(int decimal) {
std::string binary = "";
while (decimal > 0) {
binary = std::to_string(decimal % 2) + binary;
decimal /= 2;
}
return binary;
}
int main() {
int num = 42;
std::cout << "Binary representation of " << num << " is " << intToBinary(num) << std::endl;
return 0;
}
```
2. **任务2:二进制转十进制** - 编写函数`binaryToInt(const std::string &binaryStr)`,接受一个二进制字符串,计算并返回对应的十进制值。
```cpp
int binaryToInt(const std::string &binaryStr);
```
```cpp
int binaryToInt(const std::string &binaryStr) {
int decimal = 0;
for (size_t i = 0; i < binaryStr.length(); ++i) {
if (binaryStr[i] == '1') {
decimal += pow(2, binaryStr.length() - 1 - i);
}
}
return decimal;
}
```
3. **任务3:十六进制转十进制** - 类似地,你可以编写一个`hexToInt(const std::string &hexStr)`函数,处理十六进制到十进制的转换。
对于这些练习,记得处理边界情况和错误输入,例如空字符串、非有效的数字字符等。完成上述基础功能后,可以尝试结合用户输入和错误处理来设计完整的进制转换程序。
阅读全文