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
}