使用c++进行十进制转二进制
时间: 2023-12-28 17:03:58 浏览: 70
以下是一个将十进制数转换为二进制字符串的C++函数:
```C++
#include <iostream>
#include <string>
using namespace std;
string decimal_to_binary(int decimal_num) {
string binary_str = "";
while (decimal_num > 0) {
binary_str = to_string(decimal_num % 2) + binary_str;
decimal_num = decimal_num / 2;
}
return binary_str;
}
int main() {
int decimal_num = 10;
string binary_str = decimal_to_binary(decimal_num);
cout << binary_str << endl; // 输出:1010
return 0;
}
```
这个函数与 Python 版本类似,使用了除法和取模操作,将余数添加到二进制字符串的前面。需要注意的是,C++中需要使用 `to_string` 函数将整数转换为字符串类型。
相关问题
使用C++实现二进制转十进制
在C++中,将二进制数转换成十进制可以使用位运算或者基础数学计算。这里提供一种基础的方法,即逐位相加:
```cpp
#include <iostream>
using namespace std;
int binaryToDecimal(string binary) {
int decimal = 0;
int base = 1;
for (int i = binary.length() - 1; i >= 0; --i) {
if (binary[i] == '1') {
decimal += base;
}
base *= 2;
}
return decimal;
}
int main() {
string binaryInput = "1010"; // 输入二进制字符串
int decimalOutput = binaryToDecimal(binaryInput);
cout << "Binary number " << binaryInput << " is equivalent to decimal " << decimalOutput << "." << endl;
return 0;
}
```
这个程序首先定义了一个函数`binaryToDecimal`,它接受一个二进制字符串作为输入。从右到左遍历每一位,如果当前位是1,则将相应的基数(初始为1,每次循环左移一位)累加到结果上。最后返回得到的十进制值。
c++中十进制转二进制函数
在C++中,可以编写一个函数来将十进制数转换为二进制数。通常,这可以通过不断地将十进制数除以2,并将余数逆序输出的方式来实现。下面是一个简单的转换函数实现示例:
```cpp
#include <iostream>
#include <stack>
// 函数声明
std::string DecimalToBinary(int decimalNumber);
int main() {
int number;
std::cout << "请输入一个十进制数: ";
std::cin >> number;
std::string binary = DecimalToBinary(number);
std::cout << "十进制数 " << number << " 的二进制表示为: " << binary << std::endl;
return 0;
}
// 函数定义
std::string DecimalToBinary(int decimalNumber) {
std::stack<int> s;
while (decimalNumber > 0) {
s.push(decimalNumber % 2);
decimalNumber /= 2;
}
std::string binary = "";
while (!s.empty()) {
binary += std::to_string(s.top());
s.pop();
}
return binary.empty() ? "0" : binary;
}
```
这个程序首先使用一个栈来存储每次除以2得到的余数。之后,当所有计算完成,余数被压入栈中。然后通过不断弹出栈顶元素来构建二进制字符串。这样得到的二进制字符串是从低位到高位的顺序,与通常的二进制表示法相反,所以在最后返回之前,不需要反转字符串,因为栈的后进先出特性保证了余数是逆序的。
阅读全文