将一个十进制整数转换为二进制字符串。下面的函数不仅仅可以转换成二进制,还可以转换为八进制十六进制等等。
#include <iostream>
using namespace std;
char *myitoa(int num, char *str, int radix)
//num是输入数字,str是存放对应的字符串,radix是进制
{
char* temp_arr = new char[10];
int remainder, i = 0, j = 0;
if (num < 0)
{
str[i++] = '-';
num *= -1;
}
while (num > 0)
{
remainder = num % radix;
if (remainder > 9)
temp_arr[j++] = remainder - 10 + 'A';
else
temp_arr[j++] = remainder + '0';
num /= radix;
}
while (j > 0)
{
str[i++] = temp_arr[--j];
}
str[i] = '\0';
return str;
}
int main()
{
int a;
char* str = new char[100];
while (cin>>a)
{
cout << myitoa(a, str, 16)<<endl;
}
return 0;
}