2011-10-16 23 views

Respuesta

7

Debido 050 se considera octal y 50 se considera decimal.

Así que x = 050 significa básicamente x = 40.

6.4.4.1/3

Una constante decimal comienza con un dígito diferente de cero y consta de una secuencia de dígitos decimales . Una constante octal consiste en el prefijo 0 seguido opcionalmente por una secuencia de los dígitos del 0 al 7 solamente.

1

misma razón por la cual 0x50 no es lo mismo que 50 o 050

  • 50 - base 10
  • 0x50 - base 16
  • 050 - base 8 (nunca visto en la necesidad de utilizar esto, alguna vez)
+0

Sí, es principalmente histórico. C fue desarrollado en máquinas DEC PDP, y tenían 8 registros generales y 8 modos de direccionamiento. Sus instrucciones incluían varios campos de 3 bits para hacer referencia a ellos, por lo que octal era extremadamente natural. Y C fue originalmente diseñado y utilizado para implementar Unix en PDP. Pienso que el modo octal es como un pequeño acento nativo que tienen C y sus derivados, que revela dónde se criaron por primera vez. :-) – SusanW

1

Porque 050 es una constante octal.

3

050 se interpreta como octal, con 8 en lugar de 10 como base numérica.

+3

Probablemente quiso decir octal. Octadecimal sería la base 18. –

+0

lo tengo. gracias a todos ... –

+0

@KarlBielefeldt: Gracias, tienes razón. –

1

050 es 40 en octal. El 0 convierte el número en un literal octal.

Cuestiones relacionadas