Red de conocimientos sobre prescripción popular - Conocimiento dental - Para implementar la conversión de un entero sin signo a una representación de cadena hexadecimal, se requiere que no se pueda llamar a ninguna función. El programa es el siguiente, por favor comenten, cuanto más detallado mejor.

Para implementar la conversión de un entero sin signo a una representación de cadena hexadecimal, se requiere que no se pueda llamar a ninguna función. El programa es el siguiente, por favor comenten, cuanto más detallado mejor.

#include lt;stdio.hgt;

void intToHex(int ​​​​n, char* s)

{

int temp = 0; Una variable local, que guarda el resultado intermedio de la transformación

char t[128]; Una variable temporal, que registra el resultado de la transformación

int index = 0; posición actual de la cadena de operación actual, comenzando con 0

while(n) Si n no es igual a 0, continúa el bucle

{

temp = n 16; temp es igual a n dividido por 16 Resto después

if(temp gt; 9) Si el resto es mayor que 9

{

*(t index ) = 'A' temp - 10; si temp=10, entonces la posición actual=A, 11 es B, 12 es C, 13 es D, 14 es E, 15 es F y el índice 1 apunta al siguiente bit de la operación de cadena Si conoce la tabla de códigos ASCII, será fácil de entender y si no la conoce, deberá aprenderla. Es imposible aprender bien a programar sin saber ASCII

}

else Si no es mayor que 9

{

*( t index ) = '0' temp; Luego, el número de este bit se escribe en la cadena, y el número es el índice 1 al mismo tiempo, apuntando al siguiente bit de la operación de cadena.

Esto también está relacionado con ASCII

}

n /= 16; divide n entre 16 y luego asigna el cociente a n

} Cuando n es igual a 0, el ciclo finaliza, la longitud de la cadena se registra en el índice

*(t index) = '\0' Escribe la marca de final de la cadena en la posición actual

; int j = 0 ;

for(int i = index - 1; i gt; = 0; --i) bucle, asigna cada carácter del resultado de la transformación a s para regresar a la función principal

{

*(s j ) = *(t i);

}

*(s j) = '\0';

}

int main(void)

{

char s[128]; declara una cadena para guardar el resultado

int n; variable entera, utilizada para guardar datos de entrada

printf("Ingrese un número entero sin signo: "); la solicitud de entrada se muestra en la pantalla

scanf("d ", amp; n); Use el teclado para ingresar un número entero y guárdelo en la variable n

intToHex(n, s); Convierta el número entero en n en una cadena hexadecimal y almacene el resultado en el string s

printf("Su entrada: s\n", s Mostrar el resultado de la transformación

return 0;

}

<); p> Hay otra laguna en este programa, es decir, antes de llamar a intToHex, debes determinar que el número entero de entrada debe ser mayor que 0, porque el algoritmo convierte números enteros.