Código fuente de la comunidad Duanzi
Pensemos en ello juntos. ¿Tenemos que utilizar esta idea? Echemos un vistazo a mi implementación:
#Definir el valor máximo de 10
int get8to10()
{
char * str, s[MAX];
int n = 0;
str=s
Obtener;
mientras(*(str )! ='\0')
n =(n lt; lt3) (*(str )-0x 30);
Devuelve n;
}
Aquí, n en realidad actúa como un acarreo. Jaja ~ Cada bucle n veces equivale a desplazar 3 dígitos hacia la derecha (multiplicado por 8). En cuanto a cuántos dígitos se han movido, no debemos preocuparnos por eso. Naturalmente, hay un momento para controlar ~~ 0x30 es en realidad '0', y el valor real de cualquier carácter numérico es el valor menos el carácter '0'.
Por cierto: este chiste no detecta el desbordamiento decimal, pero creo que no es un problema difícil y definitivamente puedes resolverlo.
-
Disfrútalo~~