n进制转十进制c++语言自定义函数
时间: 2024-09-16 10:05:29 浏览: 49
在C++中,可以使用自定义函数将任意基数(例如n进制)转换成十进制。下面是一个简单的例子,展示了如何创建一个名为`decimal_from_base_n`的函数,它接受一个整数数组、基数和数组长度作为输入:
```cpp
#include <iostream>
#include <vector>
int decimal_from_base_n(std::vector<int> digits, int base) {
int decimal = 0;
for (int i = digits.size() - 1; i >= 0; i--) {
decimal += digits[i] * pow(base, i);
}
return decimal;
}
// 示例:从二进制转十进制
std::vector<int> binary_digits{1, 0, 1}; // 二进制数 101
int binary_to_decimal = decimal_from_base_n(binary_digits, 2);
std::cout << "Binary to decimal: " << binary_to_decimal << std::endl;
相关问题
n进制转十进制c++语言自定义函数代码
在C++中,你可以通过编写一个自定义函数来实现从任意进制(比如n进制)转换成十进制数。下面是一个简单的示例,该函数接受一个字符串表示的n进制数字和其基数作为输入:
```cpp
#include <string>
#include <cmath>
// 自定义函数:将n进制字符串转换为十进制整数
int convertBaseToDecimal(const std::string &input, int base) {
int decimal = 0;
int power = input.length() - 1;
for (char digit : input) {
if (digit >= '0' && digit <= '9') { // 对于0-9
decimal += static_cast<int>(digit - '0') * pow(base, power);
} else if (digit >= 'A' && digit <= 'Z') { // 对于A-Z,减去'A'的ASCII值
decimal += static_cast<int>(digit - 'A' + 10) * pow(base, power);
} else if (digit >= 'a' && digit <= 'z') { // 对于a-z,减去'a'的ASCII值
decimal += static_cast<int>(digit - 'a' + 10) * pow(base, power);
}
power--;
}
return decimal;
}
十进制转二进制八进制十进制C++
在C++中,你可以使用内置函数或者自定义算法来进行十进制数到二进制、八进制和十六进制的转换。以下是简单的例子:
**将十进制转换为二进制:**
```cpp
#include <bitset>
#include <iostream>
int main() {
int decimal = 42;
std::string binary = std::bitset<8>(decimal).to_string(); // 使用std::bitset的to_string方法,自动填充0
std::cout << "Decimal to Binary: " << decimal << " in binary is " << binary << std::endl;
return 0;
}
```
**将十进制转换为八进制:**
```cpp
#include <iostream>
#include <iomanip>
int main() {
int decimal = 42;
std::string octal = std::oct << decimal; // C++11以后,可以使用std::oct前缀直接转换
std::cout << "Decimal to Octal: " << decimal << " in octal is " << octal << std::endl;
return 0;
}
```
**将十进制转换为十六进制:**
```cpp
#include <iostream>
#include <hex>
int main() {
int decimal = 42;
std::string hexadecimal = std::hex << decimal; // 使用std::hex前缀直接转换
std::cout << "Decimal to Hexadecimal: " << decimal << " in hex is " << hexadecimal << std::endl;
return 0;
}
```
阅读全文