实验2练习,十进制转换成二进制
题目如下:
输入一个十进制整数,输出该整数对应的二进制,格式详见输出描述。
输入描述:
一行,一个十进制整数(范围-231~231-1)。
输出描述:
一行,输入的十进制整数对应的二进制整数,高位不含有0,以字符'B'结尾。
解决这个问题,二进制的转换规则是不断对一个十进制的数%2取余,并除以2,存到一个数组里,但如果是负数需要提前输出一个负号,并且转换时用abs函数(这个函数转换成绝对值),再进行输出,最后输出B
如果是0,直接输出。
代码如下:
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin >> n;
int b;
int i = 0;
int *a = new int[99999];
if(n == 0)
{
cout << 0 << 'B' << endl;
return 0;
}
if(n < 0)
{
cout << '-';
}
while(n != 0)
{
a[i] = n % 2;
n = n / 2;
i++;
}
for(int j = i-1;j >= 0;j--)
{
cout << abs(a[j]);
}
cout << 'B' << endl;
return 0;
}
查看17道真题和解析