Red de conocimientos sobre prescripción popular - Colección de remedios caseros - Acerca del problema de convertir caracteres en números enteros, como la diferencia entre 0 y '0'

Acerca del problema de convertir caracteres en números enteros, como la diferencia entre 0 y '0'

Creo que podemos hacerlo... Primero, dentro del alcance del código ASCII, aclaremos dos definiciones.

Caracteres: entre comillas simples, como 'a', 'z', '0', 'g', etc.

Codificación: Es la posición del carácter en la tabla ASCII, es un número. Por ejemplo, la posición de "a" es 0x41, que también se utiliza en la operación.

Entonces, ahora hablemos de tu problema:

0, este es un número.

' 0 ', este es un carácter, la codificación es 0x30.

1. Entonces, en el caso de variables de caracteres:

0-'0'=0xD0, 0-0=0, '0'-'0'=0

2.0 puede ser un valor de carácter, entero o entero largo.

3. No sé a qué te refieres. Por ejemplo, si declaras int k = 123 en lenguaje C; cuando se traduce a código de máquina, el compilador debe asignar a la variable k un valor de 123 o 0x7B. (normalmente una unidad en la memoria) (Tenga en cuenta que no hay declaraciones decimales en la memoria). Si usa la función scanf para asignar a k un valor de 567, en realidad está ingresando los caracteres '5', '6', '7' en el teclado, pero el programa los convertirá por usted y ejecutará k =(' a través de invisible código y variables intermedias 5'-0x 30)* 10(' 6'-0x 30)* 65430. Este proceso de conversión se completa mediante un programa agregado por el propio compilador, así que no se preocupe, se puede realizar fácilmente incluso si ingresa números de punto flotante; si escribe este proceso de conversión usted mismo, ¡es fácil cometer errores!

4.3 Respondido.

Cuando se trata de lenguaje C, no necesita preocuparse por los números en el teclado, pero debe tener cuidado al compilar y el proceso de conversión debe estar bien escrito.

Es fácil convertir los caracteres '0'~'9' en números 0~9, porque los códigos de los caracteres '0'~'9' son 0x30~0x39, simplemente borre los cuatro bits anteriores.