Diskussion:Magische Zahl (Informatik)

aus Wikipedia, der freien Enzyklopädie

Java-Klassen abhängig von der Endianness?

So wie ich das sehe, steht unabhängig von der Endianness CAFE BABE am Anfang einer Java-Klasse. --ChristianErtl 14:08, 30. Jan. 2008 (CET)

Java ist intern immer big endian - und magic numbers sind typischerweise byte-für-byte definiert, so dass es keinen Unterschied macht; Die Ausnahme bildet der Fall, dass die magic number explizit dazu verwendet wird, um anzuzeigen, welche byte-order die Datei selbst verwendet. Ausserdem ist das heir der falsche ort für solche fragen, dafür gibt's die Wikipedia:Auskunft. -- Duesentrieb 11:23, 5. Feb. 2008 (CET)

Nein, denn es ist artikelbezogen. Dort wird behauptet, dass dies bei Java und Big Endian so wäre, ich aber war und bin mir sicher, dass es immer so ist. --ChristianErtl 00:39, 11. Apr. 2008 (CEST)
Dementsprechend werde ich es mal ändern. --ChristianErtl 00:45, 11. Apr. 2008 (CEST)

Magische Zahlen in der Programmierung

„Da der Wert selten vorkommt (mit einer Wahrscheinlichkeit von 1:2^32 = 1:4294967296), …“ – aber jeder Wert hat doch a priori diese Wahrscheinlichkeit, was also IMHO alleine kein Grund bzw. Argument für einen speziellen Wert sein kann. Es bleibt natürlich die Tatsache, dass sich manche Werte als „normale“ Wörter aussprechen lassen (wie die angegebenen DEAD BEEF und BAAD FOOD). --Zarniwoop 11:07, 28. Feb. 2008 (CET)

Ein Beispiel in Pseudocode, das 52 Zahlen in einem Array mischt: Das Beispiel ist schlecht beschrieben, deswegen wird auch der Bezug zum Thema nicht klar. Die Variable deckSize legt nahe, dass es sich hier um ein Deck Spielkarten handelt. Erst dann wird der Sinn der Konstante deutlich. Statt 52 zu verwenden - woher kommt 52 - wird die Anzahl der Karten vorher definiert. Der Code wird damit wiederverwendbar, ohne geändert werden zu müssen.

Überarbeitung des Artikels (Baustein)

Begründung für das Setzen des Überarbeitungsbaustein von Thogo aus dem Artikel hierher verschoben, finde es nicht sinnvoll bei diesem Baustein die Begründungen direkt in den Artikel zu schreiben: -- Meph666 → post 11:22, 17. Mär. 2008 (CET)

Das müsste wahrscheinlich in zwei Artikel aufgeteilt werden, entsprechend den beiden völlig verschiedenen Bedeutungen (die komischen Konstanten und die Dateitypennummern). Thogo BüroSofa 23:09, 5. Feb. 2008 (CET)

Ich greif' das Thema mal anders herum wieder auf: Die Artikel-Einleitung
"Eine Magische Zahl (engl. magic number) ist in der Programmierung ein spezieller Wert, der für einen bestimmten Zweck genutzt wird, beispielsweise für die Kennzeichnung von Dateiformaten am Dateibeginn."
beschreibt (auch in den nachfolgenden 2-3 Sätzen) eigentlich nur die "Dateiformat-Kennzeichner"; das "Programmier-Unding" kommt in der Einleitung nicht (oder nur sehr unkenntlich) heraus.
Dat muss anners!
Entweder zwei Artikel, oder (mein Vorschlag) 'ne bessere Einleitung, die beide Varianten anreißt. --arilou (Diskussion) 19:34, 25. Aug. 2012 (CEST)
Erledigt? -- BlueDino (Diskussion) 01:35, 13. Feb. 2013 (CET)
a) Danke für dein Bemühen, es kommt dem nahe, was ich mir vorgestellt hätte.
b) Ich habe den Eindruck, dass du nicht ganz verstanden hast, was eine "Magic Number" im zweiten Bedeutungsfall ist? Selbige Magic Numbers sind beim guten Programmieren dringend zu vermeiden! Ganz ganz böse! Magic Numbers sind zu ersetzen durch Konstantendefinitionen (oder -deklarationen). Im zweiten Bedeutungsfall ist "Dein Programm enthält Magic Numbers!" eine -hm- Anklage.
Ich probier' mal, die Einleitung nochmal zu überarbeiten. --arilou (Diskussion) 13:38, 13. Feb. 2013 (CET)
So hatte ich das gedacht. Evtl. kann man "Dateityp-Markierung" und "Register-/Rambereich-Markierung" auch noch trennen, um von 3 Fällen zu sprechen. --arilou (Diskussion) 13:59, 13. Feb. 2013 (CET)
Fall b) sind keine "magic numbers" im eigentlichen Sinne, sondern Blödheit. Wir nennen das "hard coded values"; selbst die Empfehlung, da eine Konstante zu verwenden, kann nach hinten losgehen; ich habe schon explizit deklarierte IP-Adressen in Sourcen gefunden. -- BlueDino (Diskussion) 00:08, 14. Feb. 2013 (CET)
Fall b) ist jetzt 3. - Sorry for wirrwarr -- BlueDino (Diskussion) 00:36, 14. Feb. 2013 (CET)
Hab' auch im Nachhinein festgestellt, dass "Fall 3" in der Einleitung ja gar nicht drin war.
Den Begriff "Magic Numbers" hab' ich als erstes für Fall 3 gelernt; Fall 1 & 2 erst Jahre später in hießigem WP-Artikel.
Eine IP-Adresse hart zu kodieren ist zwar nicht sehr schlau, aber per Konstante immernoch besser als direkt irgendwo zwischendrin im Code. Insofern sehe ich auch darin zumindest eine Verbesserung durch Konstante.
Aber zurück zum Thema: Nun ist die Einleitung sowie der nachfolgende Artikel so gut in 3 Fälle unterteilt, dass er tatsächlich ohne größeren Aufwand auch in 2 oder 3 Artikel aufteilbar wäre. Andererseits gibt's beim "so lassen" kein Hauen und Stechen um die neuen Lemmata X-]
--arilou (Diskussion) 13:59, 14. Feb. 2013 (CET)

Link auf Spezialseite

Der Link auf die Spezialseite ist zwar überhaupt nicht elegant, aber er funktioniert, ist also nicht defekt. --ChristianErtl 23:14, 21. Mai 2008 (CEST)

Viren

Man könnte noch dazu schreiben, dass Viren auch meist die ersten bytes einer ausführbaren Datei editieren, um so ihren Viruscode auszuführen, aber auch um die Datei zu kennzeichnen, sodass der Virus eine Datei nicht mehrfach infiziert. (nicht signierter Beitrag von 78.94.64.179 (Diskussion | Beiträge) 17:25, 31. Okt. 2009 (CET))

Skripte / Shebang

Disagree... Unter Unix fangen zwar die meisten Skripte zwar mit einem Shebang an, aber man kann sie auch so ohne Probleme benutzen. Unter Windows sind Shebangs absolut unüblich, es sei denn Cygwin o.ä. wird benutzt. --hasta luego 00:16, 28. Jan. 2011 (CET)

Es ist trotzdem Konvention, dass Unix (Es wird ja gar nicht von Windows geschrieben) -skripte normalerweise mit #! beginnen. Ganz davon abgesehen hat das nunmal auch den Vorteil, dass der Interpreter definiert wird. (nicht signierter Beitrag von 79.203.36.174 (Diskussion) 22:10, 7. Sep. 2011 (CEST))

Dass man Shellskripte „auch so“ benutzen kann, ist eine Eigenschaft der Shell selbst: Ausführbare Dateien (im Hinblick auf Unix-Dateirechte), die kein ausführbares Format haben (im Hinblick auf den Dateiinhalt) werden von der Shell als Shellskripte angesehen – siehe die Manpage für bash(1), Abschnitt „Command Execution“. Dagegen hat der Shebang tatsächlich eine besondere Bedeutung für den zugrunde liegenden Systemaufruf, mit dem ein Programm gestartet wird – siehe die Manpage für execve(2), Abschnitt „Interpreter scripts“. --131.220.167.99 20:42, 31. Mai 2013 (CEST)
Dennoch ist '#!' keine 'Magic Number' für Unix-Skripte, wenn es nicht zwingend da sein muss, sondern auch einfach weggelassen werden darf.
--arilou (Diskussion) 12:30, 3. Jan. 2019 (CET)

Benfordsches Gesetz

...halte ich hier für ziemlich weit hergeholt. --Яedeemer 22:05, 20. Mär. 2013 (CET)

ZIP

In der Windowswelt begegnen mir immer wieder Dateien mit den wildesten Dateinamnameserweiterungen die sehr oft mit "PK" beginnen. Es handelte sich dabei natürlich immer wieder um ganz normale ZIPs - Security by obscurity.

Radio Eriwan.
Meist gibt es Zusatzanforderungen, dass innerhalb der Zip-Datei eine bestimmte Verzeichnisstruktur mit bestimmten Namen existieren muss, sowie Dateien mit bestimmten Namen. Also keine "allgemeine Zip-Datei".
Meist ist "obscurity" mitnichten ein Ziel - im Gegenteil: Oft werden gerade sehr sprechende und verständliche Formate (z.B. XML) für die Einzel-Dateien verwendet, und Zip ist dann dafür da, dass das Ganze in ein einziges Dateiobjekt gebündelt wird, und sich auch vom Platzbedarf her wenigstens halbwegs im Zaum hält.
--arilou (Diskussion) 12:27, 3. Jan. 2019 (CET)