2011-02-10 37 views
8

Veo esto en algún código? Comprueba que int es mayor que 0x80. ¿Qué es 0x80? No es un int.num1> = 0x80 - ¿Qué es 0x80?

Gracias

+8

"Is not an int."? ¿Por qué dices eso? ¿Qué dice el manual del lenguaje C#? Insinuación. Lea esto: http://msdn.microsoft.com/en-us/library/aa664674(v=vs.71).aspx –

Respuesta

30

Se es un número entero literal - es el número hexadecimal 80, que es decimal 128. El prefijo "0x" indica que estar en hex.

Para obtener más detalles, consulte la sección 2.4.4.2 de la especificación del lenguaje C#: "Integer literals".

3

Es un número hexadecimal.

+0

gracias por la corrección – duffymo

+0

Me alegro de estar de servicio. Vi el mismo error en dos de las respuestas y tuve que hacer algo al respecto. Además, quiero esa insignia dorada "Copy Editor";) –

+0

Gracias de mí también. No puedo creer que haya escrito eso. – recursive

7

Ese es el literal hexadecimal para 128. En realidad es un int. Cualquier literal que comience con 0x es un literal hexadecimal.

0

0x... es notación hexadecimal de un número entero

0x80 = 128 
1

El prefijo 0x significa que es hexadecimal, 0x80 significa 128 en decimal. Del mismo modo, 128 significaría 0x80 en hex. Entonces esto es perfectamente válido:

int x = 0x80; 
Cuestiones relacionadas