Programm Speicherplatz

Fahoz

Mitglied
hallo es geht um folgende au fgabe: fuer ein buchfuehrungsprogramm sollen eintraege platzsparend gespeichert werden. diese eintraege sollen folgende daten enthalten:
eine laufende nummer die mit 1 beginnt und maximal 10300000 groß ist.
Ein verwendungszweck mit 325 zeichen mit unicode 32 codiert
der betrag (gespeichert als ganze cent) der zwischen -1658000 und 4436000 liegt (2er komplement). es soll hier der betrag 0 auch auf 0 abgebildet werden (also keine verschiebung des werteraumes)
Das datum mit 10 ascii zeichen codiert

wie viele bit werden min benoetigt um diese werte zu speichern.
mein ansatz: fuer das datum habe ich den ansatz das man 10 bit benoetigt weil es 10 zeichen sind. fuer den verw.zweck 325* 4bit= 1300 bit. fuer die laufende nummer 32 bit. denke mal das die letzten beiden ansaetze falsch sind. zu den anderen habe ich bisher leider keine idee.
danke fuer eure hilfe.
lieben gruß
 
G

Gast2

Gast
Bei Unicode 32 hast du keine 4 Bit pro Zeichen sondern 32. Ein Ascii Zeichen ist je nach Kodierung auch mindestens 8 Bit lang.
Die Zahlen lassen sich ja relativ einfach auf Bits umrechnen.
 

Fahoz

Mitglied
okay danke

sind das für diesen teil
Ein verwendungszweck mit 325 zeichen mit unicode 32 codiert
dann 325*32 Bit = 10400

desweiteren
10300000 als Binärfolge ist: 110001000111010011111000000 und somit 27 zeichen bzw bit?
 

Fahoz

Mitglied
unter diesem aspekt kann ich mir leider nichts vorstellen

der betrag (gespeichert als ganze cent) der zwischen -1658000 und 4436000 liegt (2er komplement). es soll hier der betrag 0 auch auf 0 abgebildet werden (also keine verschiebung des werteraumes)

weiß nicht genau wie das gemeint ist.

ist das datum denn mit 10 bits korrekt?
und Ein verwendungszweck mit 325 zeichen mit unicode 32 codiert -> 325*32 Bit = 10400

Probleme gibts dann noch bei Betrag (gespeichert als ganze Cent) und der laufenden Nummer.

danke lieben gruß
 

Fahoz

Mitglied
10300000 und ist diese zahl 24 bit groß? weil die binaerzahl 24 stellen hat?

als gesamt-zwischenergebnis hätte ich dann

10400 Bit durch den Verwendungszweck + 10 Bit Datum + 24 Bit laufende Nummer = 10434Bit

dazu komm noch der letzte Aspekt mit den 2er Komplement zahlen.

Ist dies denn soweit korrekt?
 
Zuletzt bearbeitet:

Evil-Devil

Top Contributor
Für dein Datum benötigst du 80bit. Weil ein Ascii Zeichen 1byte (8bit) groß ist.

Für den Betrag würde sich ein ebenfalls ein 27 bzw. 28bit Wert anbieten

Die laufende Nummer schiebst du auch in einen 27bit Wert. Gibt an sich zwar keinen Datentyp der die Größe hat, aber das scheint nicht das Ziel der Aufgabe zu sein ;)
 
Zuletzt bearbeitet:
S

SlaterB

Gast
man muss jede Information eindeutig abspeichern können,
z.B. ein Bit fürs Vorzeichen und ansonsten Zahlen bis ca. 4 1/2 Mio., das sollte man in Bit umrechnen können, da reichen meiner Ansicht nach 23 (2^23 = 8 Mio.), insgesamt 24 Bit, mit etwas verschenkten Bereich,

etwas sparsamer wirds noch wenn man irgendwo anders grundsätzlich den Bereich vermerkt,
in den Daten nur eine positive Zahl speichert, von 0 bis 6 Mio., dafür werden immer noch 23 Bit reichen, insgesamt also nur 23,
bei Interpretation der Daten zieht man immer 1658000 ab um in den richtigen Bereich zu kommen,

vergleichbar mit Byte 0-255 oder -128 bis +127
 

Neue Themen


Oben