c++十进制转二进制头歌
时间: 2023-11-03 08:22:47 浏览: 171
要将十进制数转换为二进制数,可以使用栈和队列来处理整数和小数部分。首先,将整数部分对2取余数,并将余数入栈,然后将整数部分除以2继续取余直到整数部分为0。最后,将栈中的元素出栈并输出,即可得到十进制数的二进制整数部分。接着,如果有小数部分,将小数部分乘以2,判断是否大于等于1,如果大于等于1,则减去1并将1入队,否则将0入队。重复这个过程直到小数部分为0。最后,将队列中的元素出队并输出,即可得到十进制数的二进制小数部分。
下面是一个C++的示例代码可以实现这个转换过程:
```c++
#include <iostream>
#include <stack>
#include <queue>
using namespace std;
void binary(double num) {
stack<int> list;
queue<int> listb;
int front = num;
double last = num - front;
if (front != 0) {
while (front != 0) {
if (front % 2 == 1) {
list.push(1);
front = (front - 1) / 2;
} else if (front % 2 == 0) {
list.push(0);
front = front / 2;
}
}
while (!list.empty()) {
cout << list.top();
list.pop();
}
} else {
list.push(0);
}
if (last != 0) {
cout << ".";
while (last != 0) {
last = last * 2;
if (last >= 1) {
last--;
listb.push(1);
} else {
listb.push(0);
}
}
while (!listb.empty()) {
cout << listb.front();
listb.pop();
}
}
cout << endl;
}
int main() {
int t;
cin >> t; while (t--) {
double num;
cin >> num;
binary(num);
}
}
```
以上代码可以实现将输入的十进制数转换为二进制数,并按独立的一行输出结果。在代码中,首先输入一个整数t表示需要转换的十进制数的个数,然后依次输入t个十进制数。运行代码后,会依次输出每个十进制数的二进制表示。
阅读全文