将一个十进制整数转换为二进制字符串


将一个十进制整数转换为二进制字符串。下面的函数不仅仅可以转换成二进制,还可以转换为八进制十六进制等等。

#include 
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)<


你可能感兴趣的:(C++基础)