实验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; }