AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Platz sparen durch Darstellung der Zahlen zur Basis 64(z.b.)
Thema durchsuchen
Ansicht
Themen-Optionen

Platz sparen durch Darstellung der Zahlen zur Basis 64(z.b.)

Ein Thema von Tiefflieger · begonnen am 11. Jul 2003 · letzter Beitrag vom 11. Jul 2003
Antwort Antwort
Seite 1 von 2  1 2      
Tiefflieger

Registriert seit: 20. Mai 2003
18 Beiträge
 
Delphi 6 Personal
 
#1

Platz sparen durch Darstellung der Zahlen zur Basis 64(z.b.)

  Alt 11. Jul 2003, 00:59
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?
Irren ist menschlich.
Aber wenn man richtig Mist bauen will, braucht man einen Computer.

Dan Rather, CBS-Fernsehreporter
  Mit Zitat antworten Zitat
Gast
(Gast)

n/a Beiträge
 
#2

Re: Platz sparen durch Darstellung der Zahlen zur Basis 64(z

  Alt 11. Jul 2003, 01:21
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?
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Platz sparen durch Darstellung der Zahlen zur Basis 64(z

  Alt 11. Jul 2003, 01:30
Moin Tiefflieger,

Zitat von Tiefflieger:
bei programmen wird ja gern die darstellung der zahlen zur basis 16 (hexadezimal) genommen, ich nehme mal an, um platz zu sparen?
Ausserdem:
Wo ist da eine Platzersparnis, ausser ich will die Zahl als String speichern?
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
JoelH
(Gast)

n/a Beiträge
 
#4

hmm,

  Alt 11. Jul 2003, 07:02
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 !
  Mit Zitat antworten Zitat
Tiefflieger

Registriert seit: 20. Mai 2003
18 Beiträge
 
Delphi 6 Personal
 
#5

Re: Platz sparen durch Darstellung der Zahlen zur Basis 64(z

  Alt 11. Jul 2003, 17:21
Zitat von Assarbad:
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.

[...]außerdem kann sich ja keiner 64 ausgedachte Zeichen merken, oder hab ich nen Rechenfehler? 26 Buchstaben + 10 Ziffern = 36 Zeichen ... wo ist der Rest?
naja, man könnte zwischen klein-und groß buchstaben unterscheiden, dann gibts da ja noch die Ä etc...
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?
Irren ist menschlich.
Aber wenn man richtig Mist bauen will, braucht man einen Computer.

Dan Rather, CBS-Fernsehreporter
  Mit Zitat antworten Zitat
Gast
(Gast)

n/a Beiträge
 
#6

Re: Platz sparen durch Darstellung der Zahlen zur Basis 64(z

  Alt 11. Jul 2003, 17:58
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.
  Mit Zitat antworten Zitat
Tiefflieger

Registriert seit: 20. Mai 2003
18 Beiträge
 
Delphi 6 Personal
 
#7

Re: Platz sparen durch Darstellung der Zahlen zur Basis 64(z

  Alt 11. Jul 2003, 18:20
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?
Irren ist menschlich.
Aber wenn man richtig Mist bauen will, braucht man einen Computer.

Dan Rather, CBS-Fernsehreporter
  Mit Zitat antworten Zitat
Gast
(Gast)

n/a Beiträge
 
#8

Re: Platz sparen durch Darstellung der Zahlen zur Basis 64(z

  Alt 11. Jul 2003, 18:28
Besser anzeigen, rechnen und umrechnen. Siehe meine erste Antwort
  Mit Zitat antworten Zitat
Benutzerbild von d3g
d3g

Registriert seit: 21. Jun 2002
602 Beiträge
 
#9

Re: Platz sparen durch Darstellung der Zahlen zur Basis 64(z

  Alt 11. Jul 2003, 18:59
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...
-- Crucifixion?
-- Yes.
-- Good. Out of the door, line on the left, one cross each.
  Mit Zitat antworten Zitat
tommie-lie
(Gast)

n/a Beiträge
 
#10

Re: Platz sparen durch Darstellung der Zahlen zur Basis 64(z

  Alt 11. Jul 2003, 19:59
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).
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz