华为机试进制转换C++
时间: 2024-08-30 08:03:34 浏览: 57
华为机试103题c++版
华为机试中可能会涉及到C++中的二进制、八进制、十进制和十六进制之间的转换。这里简单介绍一下基本的转换方法:
1. **二进制转十进制** (bin to dec):
C++可以使用`stoi()`函数将字符串形式的二进制数转换为整型。例如:
```cpp
string binary = "1010";
int decimal = stoi(binary, nullptr, 2); // 将二进制字符串转换成整数
```
2. **十进制转二进制** (dec to bin):
使用`bitset`或手动循环除2取余法可以实现,如:
```cpp
int decimal = 10;
bitset<8> binary(decimal);
std::string binaryStr = binary.to_string(); // 将bitset转换为字符串
```
3. **八进制/十六进制转换** (oct/hex to dec):
`stoi()`函数同样适用于这两种情况,但需要指定基数(base),如:
```cpp
int octal = 56; // 转换前的八进制数
int decimal = stoi(octal, nullptr, 8); // 转换成十进制
std::stringstream ss("FF"); // 转换前的十六进制字符串
int hexInt = stoi(ss.str(), nullptr, 16); // 转换成十进制
```
阅读全文