magisch getal

Eigenschappen

Voorkeurslabelmagisch getal
DefinitieIn computerprogrammering heeft de term magisch getal meerdere betekenissen. Het kan verwijzen naar een of meer van de volgende punten: 1. Unieke waarden met onverklaarbare betekenis of meerdere gebeurtenissen die (bij voorkeur) kunnen worden vervangen door benoemde constanten. 2. Een constante numerieke of tekstwaarde die wordt gebruikt om een bestandsindeling of protocol te identificeren; voor bestanden, zie Lijst met bestandshandtekeningen. 3. Onderscheidende unieke waarden die waarschijnlijk niet worden verward met andere betekenissen (bijvoorbeeld wereldwijd unieke id's)
Synoniemmagische getallen, magische nummer, magische nummers, magic number, magic numbers
Toelichting op definitieDe term magische nummer of magische constante verwijst naar de anti-patroon van het gebruik van getallen direct in de broncode. Dit is aangeduid als het breken van een van de oudste regels van de programmering, die teruggaat tot de COBOL, FORTRAN en PL / 1 handleidingen van de jaren 1960. Het gebruik van naamloze magische aantallen in code verduistert de bedoeling van de ontwikkelaars bij het kiezen van dat aantal, verhoogt de kansen voor subtiele fouten (b.v. is elk cijfer correct in 3.14159265358979323846 en is dit gelijk aan 3.14159?) en maakt het moeilijker voor het programma om in de toekomst worden aangepast en uitgebreid. Het vervangen van alle significante magische aantallen met benoemde constanten maakt programma's gemakkelijker te lezen, te begrijpen en te handhaven.

Magische getallen komen vaak voor in programma's in veel besturingssystemen. Magische getallen implementeren sterk getypte gegevens en zijn een vorm van in-band signalering aan het controleprogramma dat het gegevenstype(s) leest tijdens de run-time van het programma. Veel bestanden hebben zulke constanten die de opgenomen gegevens identificeren. Het detecteren van dergelijke constanten in bestanden is een eenvoudige en effectieve manier om onderscheid te maken tussen vele bestandsformaten en kan verdere run-time informatie opleveren.

Voorbeelden.

  • JPEG-afbeeldingbestanden beginnen met FF D8 en eindigen met FF D9. JPEG/JFIF-bestanden bevatten de ASCII-code voor "JFIF" (4A 46 49 46) als een null-beëindigd tekenreeks. JPEG/Exif-bestanden bevatten de ASCII-code voor "Exif" (45 78 69 66) ook als een null beëindigd string, gevolgd door meer metadata over het bestand.
  • PNG-afbeeldingsbestanden beginnen met een handtekening van 8-byte die het bestand identificeert als een PNG-bestand en detectie van veelvoorkomende problemen met bestandsoverdracht mogelijk maakt: \211 P N G \r \n \032 \n (89 50 4E 47 0D 0A 1A 0A). Die handtekening bevat verschillende newline-tekens om ongerechtvaardigde geautomatiseerde newline-conversies mogelijk te maken, zoals het overbrengen van het bestand met FTP met de ASCII-overdrachtsmodus in plaats van de binaire modus.
  • TIFF bestanden beginnen met II of MM gevolgd door 42 als een twee-byte geheel getal in weinig of grote endian byte bestellen. II is voor Intel, die weinig endian byte bestellen gebruikt, dus het magische getal is 49 49 2A 00. MM is voor Motorola, die grote endian byte bestellen gebruikt, dus het magische nummer is 4D 4D 00 2A.
Bijna overeenkomsthttps://en.wikipedia.org/wiki/Magic_number_(programming)

Relaties

VertrekpuntRelatieEindpunten
magisch getalBron van
magisch getalGerelateerd

Afgeleide relaties

VertrekpuntRelatieEindpunt
Rdf.jpg