C++把二进制数转变为10进制数
时间: 2024-12-17 17:32:00 浏览: 8
在C++中,将二进制数转换成十进制数通常涉及到从字符串或整型数组读取二进制数据,并逐位相加。这里有一个简单的步骤:
1. 定义一个函数,接受一个包含二进制数字的字符串作为输入,例如`std::string binaryNum`。
```cpp
#include <iostream>
#include <string>
int decimalFromBinary(const std::string& binary) {
int decimal = 0;
int power = 0;
for (size_t i = binary.length() - 1; i >= 0; i--) {
if (binary[i] == '1') {
decimal += pow(2, power);
}
power++;
}
return decimal;
}
```
在这个例子中,我们从右向左遍历二进制字符串,每一步都将当前位置的权重值(2的幂次)乘以对应的二进制位('1'表示1,'0'表示0),然后累加到结果decimal上。
相关问题
C++把二进制数转变为十进制数
在C++中,将二进制数转换为十进制数可以使用内置函数`std::stoi()`或者手动通过循环逐位相加的方式来实现。以下是两种常见的方式:
1. 使用内置函数 `std::stoi()`:
```cpp
#include <string>
#include <iostream>
int binaryToDecimal(std::string binaryStr) {
return std::stoi(binaryStr, nullptr, 2);
}
int main() {
std::string binary = "1010";
int decimal = binaryToDecimal(binary);
std::cout << "Binary " << binary << " is equivalent to decimal " << decimal << std::endl;
return 0;
}
```
在这个例子中,`std::stoi()`函数接受一个字符串、一个指向错误位置的指针(这里设置为nullptr),以及一个基数(这里是2,表示二进制)。
2. 手动逐位相加:
```cpp
void binaryToDecimalManually(char binary[], int length) {
int decimal = 0;
for (int i = 0; i < length; ++i) {
if (binary[i] == '1') {
decimal += pow(2, length - i - 1);
}
}
std::cout << "Binary " << std::string(binary, length) << " is equivalent to decimal " << decimal << std::endl;
}
int main() {
char binary[] = {'1', '0', '1', '0'};
binaryToDecimalManually(binary, sizeof(binary));
return 0;
}
```
这个方法从右向左遍历二进制字符串,每遇到一个'1'就将其对应的十进制值(2的幂)累加到结果上。
C++把二进制数转变为十进制数生成一个完整的程序
在C++中,你可以创建一个函数来将二进制数转换成十进制数。以下是一个简单的示例程序,它使用`std::bitset`来存储二进制数,并通过乘法和加法操作逐位计算其十进制值:
```cpp
#include <iostream>
#include <bitset>
// 函数来将二进制字符串转换为十进制整数
int binaryToDecimal(std::string binaryString) {
int decimal = 0;
for (size_t i = 0; i < binaryString.length(); ++i) {
// 每一位二进制数乘以对应的权值(2的i次方)
if (binaryString[i] == '1') {
decimal += pow(2, binaryString.length() - 1 - i);
}
}
return decimal;
}
int main() {
std::string binaryInput = "101010"; // 示例的二进制数
int decimalResult = binaryToDecimal(binaryInput);
std::cout << "Binary number " << binaryInput << " is equal to decimal " << decimalResult << std::endl;
//
阅读全文