c++八进制转二进制
时间: 2024-01-01 07:05:01 浏览: 44
以下是一个C++的八进制转二进制的例子:
```cpp
#include <iostream>
#include <string>
using namespace std;
string t[8] = {"000","001","010","011","100","101","110","111"};
int main() {
string s, r = "";
cin >> s;
for(int i = 0; i < s.size(); i++) {
r = r + t[s[i] - '0'];
}
while(r[0] == '0') {
r.erase(0, 1);
}
if(r == "") {
cout << 0;
} else {
cout << r;
}
return 0;
}
```
相关问题
c++二进制转八进制
C++中可以使用以下步骤将二进制数转换为八进制数:
1. 将二进制数每3位分成一组,不足3位的在前面补0。
2. 将每组二进制数转换为对应的八进制数。
3. 将所有转换后的八进制数连接起来,即为最终的八进制数。
以下是一个示例代码:
```c++
#include <iostream>
#include <string>
std::string binaryToOctal(std::string binary_str) {
// 补齐位数
int len = binary_str.length();
int mod = len % 3;
if (mod != 0) {
for (int i = 0; i < 3 - mod; i++) {
binary_str = "0" + binary_str;
}
}
// 分组转换
std::string octal_str = "";
for (int i = 0; i < binary_str.length(); i += 3) {
std::string substr = binary_str.substr(i, 3);
int decimal_num = std::stoi(substr, nullptr, 2);
octal_str += std::to_string(decimal_num);
}
return octal_str;
}
int main() {
std::string binary_str = "10101010";
std::string octal_str = binaryToOctal(binary_str);
std::cout << octal_str << std::endl;
return 0;
}
```
运行结果为:
```
252
```
c++十六进制转八进制
你可以使用以下步骤将十六进制数转换为八进制数:
1. 将十六进制数转换为二进制数。
2. 将二进制数按照每三位进行分组。
3. 将每组二进制数转换为对应的八进制数。
举个例子,假设你要将十六进制数 "ABC" 转换为八进制数:
1. 将十六进制数 "ABC" 转换为二进制数为 "101010111100"。
2. 将二进制数按照每三位进行分组,得到 "101 010 111 100"。
3. 将每组二进制数转换为八进制数,得到 "5 2 7 4"。
因此,十六进制数 "ABC" 转换为八进制数为 "5274"。