用C++编写一个十进制转二进制
时间: 2023-05-26 20:06:58 浏览: 83
#include <stdio.h>
void decToBinary(int num) {
int binary[32]; // 数组用来存储二进制数字
int i = 0;
while (num > 0) {
binary[i++] = num % 2; // 将余数存入数组中
num /= 2;
}
// 这里倒序输出数组元素即可得到二进制数
for (int j = i - 1; j >= 0; j--) {
printf("%d", binary[j]);
}
}
int main() {
int num;
printf("请输入一个十进制数:");
scanf("%d", &num);
printf("%d 的二进制表示为:", num);
decToBinary(num);
return 0;
}
相关问题
用c++写一个十进制转换二进制的程序
好的,我可以回答这个问题。以下是一个用 C 语言编写的将十进制数转换为二进制数的程序:
```c
#include <stdio.h>
int main() {
int decimal, binary = , base = 1, rem;
printf("请输入一个十进制数:");
scanf("%d", &decimal);
while (decimal > ) {
rem = decimal % 2;
binary += rem * base;
decimal /= 2;
base *= 10;
}
printf("二进制数为:%d\n", binary);
return ;
}
```
这个程序会要求用户输入一个十进制数,然后将其转换为二进制数并输出。
c++使用栈编写二进制转八进制转十进制转十六进制完整代码
在C++中,我们可以使用栈数据结构来辅助转换二进制、八进制、十进制和十六进制。下面是一个简单的示例,分别展示了如何实现这四个进制之间的转换:
```cpp
#include <iostream>
#include <stack>
#include <string>
// 将二进制字符串转换为整数
int binaryToDecimal(std::string binary) {
int decimal = 0;
for (char digit : binary) {
if (digit == '1')
decimal = decimal * 2 + 1;
else if (digit != '0') // 二进制只有0和1,其他字符表示错误
return -1; // 返回错误,因为非0和1的数字不是有效的二进制
}
return decimal;
}
// 将十进制转换为其他进制字符串
std::string convertBase(int value, int base) {
std::stack<int> digits;
while (value > 0) {
digits.push(value % base);
value /= base;
}
std::string result = "";
while (!digits.empty()) {
result += std::to_string(digits.top());
digits.pop();
}
return result;
}
int main() {
std::string inputBinary = "101010"; // 示例二进制字符串
int decimalValue = binaryToDecimal(inputBinary);
if (decimalValue >= 0) {
std::cout << "二进制(" << inputBinary << ") 转十进制: " << decimalValue << std::endl;
// 转换到其他进制
std::cout << "八进制: " << convertBase(decimalValue, 8) << std::endl;
std::cout << "十六进制: " << convertBase(decimalValue, 16) << std::endl;
} else {
std::cout << "无效的二进制字符串!" << std::endl;
}
return 0;
}
```
这个程序首先将输入的二进制字符串转换成十进制,然后根据需要进一步转换为八进制或十六进制。
阅读全文