Red de conocimiento informático - Descarga de software - Utilice la programación C o C para ingresar un número entero decimal positivo y luego generar su número octal o hexadecimal correspondiente.

(No puede usar directamente 0 y x para generar

Utilice la programación C o C para ingresar un número entero decimal positivo y luego generar su número octal o hexadecimal correspondiente.

(No puede usar directamente 0 y x para generar

Ahora proporcionamos un programa de conversión que puede convertir decimal a binario, hexadecimal y octal. Al mismo tiempo, no es necesario ingresar un número decimal. Puede ser un número positivo o negativo. , un número entero, un decimal, etc., y al mismo tiempo puede convertir decimal a binario a hexadecimal. El programa fuente es el siguiente:

#stdio.hgt; p>#includelt; math.hgt;

void main()

{

int i=0, n, j, a[20], b [20], k, c=0;

double m, x, d;

printf("Ingrese el número a convertir: "); p> scanf("lf", amp; x);

printf("Ingrese la base a convertir (1lt; Nlt; =16): "); ("d", amp; n);

if(xlt;0)

m=fabs(x);

else

m=x;

k=(int)m; //Para la conversión de tipo forzada, puede usar k=(int)m en su lugar, para que quede más claro

while(k)//Determine si el número a convertir se convierte en 0

{

a[i ]=kn; //Tome el resto y realice la conversión base, pero el orden es opuesto al valor correcto

k/=n; //Convierte un bit y realiza los cambios correspondientes

}

if(m!=( int)m)//Cálculo selectivo, si es un número entero, no es necesario realizar este paso Calculado, esto puede ahorrar tiempo de ejecución del programa

{

d =m-(int)m; //Toma la parte decimal

while(d! =0)

{

b[c]=(int )(d*n); // El algoritmo es ×N redondeo

d=d *n-b[c]

c

if(cgt; ; =10)

break; // Principalmente para controlar el decimal infinito después del decimal. Es mejor salir del bucle para evitar un bucle infinito.

}

}

printf("El resultado de la conversión es: ");

if (xlt; 0)

printf("-");

for(j=i-1;jgt;=0;j--)// Salida en orden inverso, mayor que El número 10 cambia en consecuencia

{

if(a[j]==10)

printf("A");

else

if(a[j]== 11)

printf("B");

else

if(a[j]==12)

printf( "C");

else

if(a[j]==13)

printf("D"); > más

si(a[j]==14)

printf("E" );

más

si( a[j]==15)

printf("F");

el

se

printf("d", a[j]);

}

if(m!=(int)m)//Salida selectiva, esto puede ahorrar tiempo de salida y tiempo de ejecución del programa

{

printf(".");

for(j=0;jlt;c; j ) //salida de secuencia positiva

{

if(b[j]==10)

printf("A");

más

si(b[j]==11)

printf("B");

más

si( b[j]==12)

printf("C");

else

if(b[j]==13)

printf("D");

else

if(b[j]==14)

printf("E" );

más

if(b[j]==15)

printf("F");

más

printf("d", b[j]);

}

}

if(cgt;=10)// Si es es un decimal infinito, estará representado por una elipse después

printf("...");

printf("\n"); //Salida de nueva línea, with Haz que la salida del programa sea hermosa

}