Ceros a la izquierda

Ceros iniciales en la notación de un número utilizando un sistema numérico posicional  : una secuencia de uno o más ceros que ocupan bits altos . El concepto de ceros iniciales surge cuando se utilizan representaciones de números que tienen un número fijo de dígitos. En otros casos, por regla general, no se escriben ceros a la izquierda.

En lenguajes de programación para constantes octales

En algunos lenguajes de programación, en particular C / C++ , Perl (antes de 6) [1] [2] y Python (antes de 3.0), un cero inicial antes de un número indica octal . Por ejemplo, 0644 es una constante literal con el valor 420 10 .

Existe una sintaxis similar en los lenguajes Java y Ada . Estadísticamente, el uso de constantes octales en programas C es extremadamente bajo (alrededor del 0,1% de todas las constantes literales, excluyendo la constante "0", técnicamente también octal). Tales constantes conservan cierta popularidad en el caso de describir los derechos de los archivos en el estilo Unix/POSIX (0666, 0750), y en algunos casos de trabajar con máscaras de bits, cuando es más fácil para el programador representar la representación de bits de números octales, en lugar de hexadecimales o, además, decimales [ 3] .

Tales reglas pueden no ser obvias para los programadores y conducir a errores. En algunos idiomas, hay recomendaciones para no usar tal notación [1] , en otros idiomas, la notación de las constantes octales ha cambiado (por ejemplo, ECMAScript ha prohibido las constantes octales desde la versión 5; en Python 2.6 tienen el prefijo 0o , y desde la versión 3, el uso de ceros iniciales para constantes octales) [4] [5] [6] . Algunos lenguajes más modernos, como Rust y D , prohíben dicho uso o no admiten constantes octales [4] .

Ejemplos de uso

Notas

  1. 1 2 INT00-PL. No anteponga ceros a los literales enteros: SEI CERT Perl Coding Standard-Confluence . Consultado el 2 de octubre de 2018. Archivado desde el original el 3 de octubre de 2018.
  2. Dejemos de copiar C/Bloc de notas difuso . Consultado el 3 de octubre de 2018. Archivado desde el original el 3 de octubre de 2018.
  3. 829 Una constante octal consiste en el prefijo 0 Archivado el 11 de julio de 2018 en Wayback Machine / "The New C Standard: An Economic and Cultural Commentary" (versión 1.2, 2009   )
  4. 12 Florian Weber. Octal Zero considerado nocivo  ( 8.4.2018). Consultado el 2 de octubre de 2018. Archivado desde el original el 16 de diciembre de 2018.
  5. Documentación de Numbers - Conservative Python 3 Porting Guide 1.0 . Consultado el 2 de octubre de 2018. Archivado desde el original el 3 de octubre de 2018.
  6. PEP 3127 - Compatibilidad con literales enteros y sintaxis | Python.org . Consultado el 2 de octubre de 2018. Archivado desde el original el 3 de octubre de 2018.

Enlaces