Red de conocimiento informático - Material del sitio web - Mientras leía un artículo, me encontré con una pregunta sobre palabras clave sin firmar en C.

Mientras leía un artículo, me encontré con una pregunta sobre palabras clave sin firmar en C.

Suponemos que int solo ocupa 1 byte para facilitar la explicación (el principio es el mismo)

Entonces el rango de valores de int es 0-127 (la representación binaria es 00000000-01111111) y 0-menos 127 ( La representación binaria es 00000000-111111111), el primer 1 representa un número negativo, es decir, el signo debe ocupar un bit

Si es un int sin signo, entonces no hay bit de signo, es decir es decir, no es necesario considerar números negativos. El signo debe ocupar un bit

Si es un int sin signo, no hay bit de signo, es decir, no es necesario considerar números negativos, entonces el valor es 0-255 (representación binaria es 00000000-111111111), los primeros 1 símbolos no están representados ahora

Entonces, en su código, cuando se ejecuta i, si i=-1, su representación binaria es 1111111111, entonces el valor es 0-255 (la representación binaria es 00000000 -111111111) y 0-menos 127 (la representación binaria es 00000000-111111111). Su representación binaria es 1111111111, que es 255.