Programación en lenguaje C ----- convierte un número decimal en una cadena de 2 ~ 36 hexadecimal arbitrario

(1) Función de algoritmo:

Convierta cualquier número decimal en una base 2 ~ 36 y envíela a la pantalla como una cadena.

(2) Núcleo del algoritmo:

(1) Las cadenas están en orden inverso; (2) Pérdida de bits, almacenamiento; (3) Convertido a un número decimal para tomar el resto; (4) Bucle

(3) Implementación del algoritmo:

//将十进制数转成2~36任意进制的字符串
#include<stdio.h>
#include<string.h>
void StrResever(char *str)
{
    
    
	/*char*p=NULL;
	while(*p!='\0')
	p++;*/
	char tmp;
	int len = strlen(str);
	for(int i=0,j=len-1;i<=j;i++,j--)
	{
    
    
		tmp=str[i];
		str[i]=str[j];
		str[j]=tmp;
	}
	str[len] = '\0';
}
void Myitoa(char *str,int n,int radix)
{
    
    
	char *chars="0123456789abcdefghijklmnopqrstuvwxyz";
	int i=0;
	while(n!=0)
	{
    
    
		str[i++]=chars[n%radix];
		n/=radix;
	}
	StrResever(str);
}
int main()
{
    
    
	char str[200]=" ";
	Myitoa(str,16,16);
	printf("%s\n",str);
	Myitoa(str,123,10);
	printf("%s\n",str);
	Myitoa(str,67,16);
	printf("%s\n",str);
	Myitoa(str,18,20);
	printf("%s\n",str);
	Myitoa(str,123,20);
	printf("%s\n",str);
	Myitoa(str,18,16);
	printf("%s\n",str);
	//char str[]=" ";
	//printf("%d\n",Myitoa(,10,16));
	return 0;
}

(4) Resultados de la operación:

Inserte la descripción de la imagen aquí
¡Espero poder ayudarte!
¡Por favor avísenos sobre las deficiencias!

Supongo que te gusta

Origin blog.csdn.net/Gunanhuai/article/details/90579440
Recomendado
Clasificación