![]() |
Platz sparen durch Darstellung der Zahlen zur Basis 64(z.b.)
mir ist gerade ein gedanke eingefallen:
bei programmen wird ja gern die darstellung der zahlen zur basis 16 (hexadezimal) genommen, ich nehme mal an, um platz zu sparen? warum treibt man das spiel nicht weiter, und nimmt höhere 2er potenzen (die wohl offensichtlich für computer am einfachsten zu verstehen sind) - warum nimmt man nicht zahlen zur basis 64? die platzersparniss ist doch enorm: 36864 (= 9*64² und 5 Ziffern, die gespeichert werden müssen) zur basis 10 würde z.b. 009 (3 Ziffern, die gespeichert werden müssen) zur basis 64 entsprechen bei größeren zahlen wird die anzahl der ziffern, die man bei 64-ären zahlen im gegensatz zu den 10-ären zahlen speichern muß, noch kleiner, der einzig begrenzende Faktor ist erstmal die ascii-tabelle, man muß ja irgendwie 64 verschiedene ziffern darstellen können. ist der rechenaufwand zu groß oder habe ich irgendeinen denkfehler gemacht oder warum wird diese Technik nicht verwendet? |
Re: Platz sparen durch Darstellung der Zahlen zur Basis 64(z
Die Darstellung hexadezimal hat eine andere Bewandnis!
Denk mal nach. 8bit = 1 Byte! Kleinste zusammenhängende Einheit in einem PC. 8bit = 2 Nibble (1 Nibble = 4bit) Ein Hexadezimal-Digit stellt exakt ein Nibble dar. Zwei Nibble = 1 Byte = 2 Digits = 1 Byte ... Das erleichtert Rechnen/Umrechnen und die Ansicht von Adressen etc - will heissen ... es geht nicht (allein) um Platzersparnis. Und jetzt denk' nochmal nach, ob du diese Vorteile auch bei Basis 64 haben würdest ... ich denke nicht ... außerdem kann sich ja keiner 64 ausgedachte Zeichen merken ... macht alles nur komplizierter. Oder hab ich nen Rechenfehler? 26 Buchstaben + 10 Ziffern = 36 Zeichen ... wo ist der Rest? |
Re: Platz sparen durch Darstellung der Zahlen zur Basis 64(z
Moin Tiefflieger,
Zitat:
Wo ist da eine Platzersparnis, ausser ich will die Zahl als String speichern? ;-) |
hmm,
ausser bin speichern haste keine Platzersparnis, denn die CPU muss sich eh alles nach Binär konvertieren und durch deine Idee wird eigentlich alles einfach lansamer !
|
Re: Platz sparen durch Darstellung der Zahlen zur Basis 64(z
Zitat:
und warum nimmt man dann nicht z.b. Zahlen zur basis 128, sprich ein digit wäre genau ein byte? was wäre im vergleich zu den hex-zahlen nachteilhaft? |
Re: Platz sparen durch Darstellung der Zahlen zur Basis 64(z
Nope ... 128 sind aber leider noch nicht ein Byte :) ... da fehlt noch ein Bit. Es muessten 256 sein. Und den EASCII-Zeichensatz auswendig lernen nur um dein Zahlensystem zu beherrschen ... na ich weiss ja nicht.
Geschweige denn Umrechnen und Rechnen damit *brr* So gesehen existiert ja 256bit schon ... indem du einfach alle 256 Zeichen des EASCII Zeichensatzes darstellst. |
Re: Platz sparen durch Darstellung der Zahlen zur Basis 64(z
whoops, hab mich wohl verrechnet :-)
ich versteh ja, dass im endeffekt eh alles binär gespeichert werden muß, aber wozu sind dann überhaupt hex-zahlen gut? einfach nur um sachen besser anzeigen zu können? |
Re: Platz sparen durch Darstellung der Zahlen zur Basis 64(z
Besser anzeigen, rechnen und umrechnen. Siehe meine erste Antwort :)
|
Re: Platz sparen durch Darstellung der Zahlen zur Basis 64(z
Ein großer Nachteil wäre auch, dass du dir eine solche Zahl nicht merken kannst. Im IPv4-Standard hat man auch eine alternative Darstellung der IP-Adressen gewählt (nämlich die vier Bytes getrennt zu schreiben) anstatt (was platzsparender gewesen wäre) die IP-Adresse hexadezimal zu notieren, weil sich das leichter merken lässt. Bei IPv6 ist die Adresse mit 16 Byte aber so lang geworden, dass man dann doch hexadezimal notiert. Wenn du jetzt aber nur an 10 und nicht an 16 Ziffern gewohnt bist, wirst du Probleme haben, dir eine solche Adresse zu merken. Jetzt stell dir das mal mit 256 Ziffern vor. Nähme man den ASCII-Standard für die Ziffern (was sich ja durchaus anbieten würde), müsste man die Nummer jedes ASCII-Zeichens kennen, um sich den Wert der Zahl im Dezimalsystem vorstellen zu können. Da die Ziffern des Dezimalsystems im ASCII-Standard nicht ihren Wert sondern einen zwischen 48 und 57 ist die Verwirrung beim Auftreten solcher Ziffern dann komplett...
|
Re: Platz sparen durch Darstellung der Zahlen zur Basis 64(z
Um mal Tieffliegers Frage zu beantworten, warum man im Quellcode Hexadezimalzahlen benutzt: Es ist manchmal logischer.
Wenn du ein DWORD haben willst, bei dem alle Bits gesetzt sind, wäre das dezimal 4294967295. Hexadezimal aber FFFFFFFF. Jetzt sag' mir, wo man eher auf den ersten Blick erkennt, daß es 32 Einsen sind... ;-) Mit Platzersparnis im Code hat und hatte es nichts zu tun, denn der Compiler wandelt es so oder so in Hexadezimalzahlen um, auch bei konstanten oder ähnlichen Dingen geschieht dies. Im Binärcode des Kompilates kommt keine dezimale Zahl vor. Das geschieht auch mit oktalen oder binären Zahlen, bei den Compilern die diese Interpretieren (hier kann delphi aber nur hexadezimale und dezimale Zahlen). |
Re: Platz sparen durch Darstellung der Zahlen zur Basis 64(z
@tommie-lie:
Ach ... seit wann denn das? Kommt das nicht eher darauf an, welchen Editor du benutzt? Also wenn du willst, schreib ich dir mal einen Hept-Viewer (Basis 7) ... behauptest du dann auch, dass die Zahlen vom Compiler zur Basis 7 abgespeichert werden? Es ist nach wie vor BINAER!!! :mrgreen: *stirnklatsch (bei tommie-lie)* Als Auslegungssache kannt du maximal werten, das ueblicherweise Byteweise geschrieben wird, statt bitweise. So gesehen waere es oktale Speicherung. Aber man spricht nach wie vor von Binaerdateien ... und damit halt ichs auch :) |
Re: Platz sparen durch Darstellung der Zahlen zur Basis 64(z
Zitat:
Zitat:
Sie werden zwar vom Prozessor binär verarbeitet, weil nunmal die Transistoren entweder an oder aus sind, aber vom Compiler umgewandelt und letztendlich so belassen werden sie im Hexadezimalformat. Das liegt, wie du sicherlich auch weißt, an den Bytes, die lieber vollständig ausgenutzt werden, mit 256 Werte pro byte, was mit 00..FF ideal machbar ist. Ich habe nicht geschrieben, daß wenn Zahlen oktal eingegeben werden, diese nachher auch also solche im Kompilat wiederzufinden sind, sondern genau das Gegenteil. Nur kann Delphi Oktalzahlen nicht verarbeiten, warum Borland da gespart hat weiß der Herr allein (allerdings will ich mich nicht beschweren, oktal habe ich nie gebraucht, binär wäre mal praktisch gewesen, aber dann hab' ich's halt umgerechnet :roll:). Zitat:
Ein Byte sind 8 bit, daß ist aber noch lange nicht oktal, falls du das meintest. |
Re: Platz sparen durch Darstellung der Zahlen zur Basis 64(z
Moin tommie-lie,
Zitat:
Dann müssten die Daten als String gespeichert werden. Die Daten werden als Byte abgespeichert, und zu welcher Zahlenbasis Du Dir die eventuell ansiehst hat damit nichts zu tun. |
Re: Platz sparen durch Darstellung der Zahlen zur Basis 64(z
@tommie-lie:
Zitat:
Nur bei dem obendrueber schreibst du (durch die Blume) Mist :mrgreen:. Nicht die Ansicht eines Hexeditors mit dem Format auf der Platte verwechseln! Nicht alle Zeichen sind als Zeichen darstellbar (unter DOS ging das zT noch). Deshalb hat man Hex gewaehlt um die Ansicht angenehmer zu machen. Aber es wird NIE Hexadezimal abgespeichert. Stehst du vielleicht irgendwie grad auf der Leitung? :spin: |
Re: Platz sparen durch Darstellung der Zahlen zur Basis 64(z
Zitat:
Jo, auf der Festplatte wird auch binär gespeichert, entsprechend den Ferropartikeln auf dem Träger. Irgendwiee habe ich da tatsächlich was verwechselt zu haben. Aber wie dem auch sei, der Compiler wandelt alles in das gleiche Zahlenformat um (jetzt sag' ich auf jeden Fall nichts falsches *g*). Und der Compiler wandelt auch nicht ins Hexadezimalformat um, auch richtig. Naja, müde, kaum geschlafen, Augen kaum offen, halb tot, was willst du von mir erwarten? Das ist halt das leidige Schülerleben :( |
Re: Platz sparen durch Darstellung der Zahlen zur Basis 64(z
|
Re: Platz sparen durch Darstellung der Zahlen zur Basis 64(z
Zitat:
Aber ich hatte wirklich irgendwas nicht ganz verstanden. Ich dachte zum Beispiel auch, daß Tiefflieger die Hexadezimalnotation im Quellcode meint, bis mich eben jemand anderes darauf hingewiesen hat, daß er sich wahrscheinlich auf Computer, bzw deren Speicherverfahren, allgemein bezog :? Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz