Inledande nollor

Inledande nollor i notationen av ett tal som använder ett positionsnummersystem  - en sekvens av en eller flera nollor som upptar höga bitar . Begreppet inledande nollor uppstår när man använder representationer av tal som har ett fast antal siffror. I andra fall skrivs som regel inte inledande nollor.

I programmeringsspråk för oktala konstanter

I vissa programmeringsspråk, särskilt C / C++ , Perl (före 6) [1] [2] och Python (före 3.0), indikerar en inledande nolla före ett tal oktal . Till exempel är 0644 en bokstavlig konstant med värdet 420 10 .

En liknande syntax finns i språken Java och Ada . Statistiskt sett är användningen av oktala konstanter i C-program extremt låg (cirka 0,1% av alla bokstavliga konstanter, exklusive "0"-konstanten, tekniskt sett även oktala). Sådana konstanter behåller en viss popularitet när det gäller att beskriva rättigheterna till filer i Unix/POSIX-stilen (0666, 0750), och i vissa fall när man arbetar med bitmasker, när det är lättare för programmeraren att representera bitrepresentationen av oktala tal, snarare än hexadecimala eller dessutom decimala [3] .

Sådana regler kanske inte är uppenbara för programmerare och leder till fel. På vissa språk finns det rekommendationer att inte använda en sådan notation [1] , på andra språk har notationen för oktala konstanter ändrats (till exempel har ECMAScript förbjudit oktala konstanter sedan version 5; i Python 2.6 har de prefixet 0o , och sedan version 3, användningen av inledande nollor för oktala konstanter) [4] [5] [6] . Vissa mer moderna språk, som Rust och D , förbjuder sådan användning eller stöder inte oktala konstanter [4] .

Användningsexempel

Anteckningar

  1. 1 2 INT00-PL. Placera inte inledande nollor till heltalsliterala - SEI CERT Perl Coding Standard - Confluence . Hämtad 2 oktober 2018. Arkiverad från originalet 3 oktober 2018.
  2. Låt oss sluta kopiera C / fuzzy notepad . Hämtad 3 oktober 2018. Arkiverad från originalet 3 oktober 2018.
  3. 829 En oktalkonstant består av prefixet 0 Arkiverad 11 juli 2018 på Wayback Machine / "The New C Standard: An Economic and Cultural Commentary" (version 1.2, 2009   )
  4. 12 Florian Weber. Octal Zero anses vara skadligt  ( 8.4.2018). Hämtad 2 oktober 2018. Arkiverad från originalet 16 december 2018.
  5. Numbers - Conservative Python 3 Porting Guide 1.0 dokumentation . Hämtad 2 oktober 2018. Arkiverad från originalet 3 oktober 2018.
  6. PEP 3127 - Heltals bokstavligt stöd och syntax | Python.org . Hämtad 2 oktober 2018. Arkiverad från originalet 3 oktober 2018.

Länkar