wie große zahlen in einem byte speichern?

5 Antworten

Die Vorstellung, eine Zahl in ein Byte einzustellen, ist selten zutreffend.

18.446.744.073.709.551.616 (≈ 18 Trillionen) ist die maximale Zahl (2^64), die man als Longword heute in eine Einheit einstellen kann, die selbstverständlich aus mehreren Bytes besteht, die man sich als hintereinander gestellt vorstellen kann, was nicht immer stimmt, denn gemäß seiner Architektur ist das herstellerabhängig. Das hat vor Jahren mit Doppelworten (2 Bytes) angefangen und sich inzwischen "etwas" gesteigert.

Doch genau das passiert mit normalen Zahlendarstellungen gerade nicht. Sondern für eine Ziffer reicht ein Halbbyte (4 bits) für die so genannte gepackte Darstellung (1 Byte = 2 Ziffern), sonst 1 Byte. Und die werden dann nebeneinander getan, soviele wie man eben braucht. Obendrein haben sich die Systemarchitekten noch verschiedene Tricks ausgedacht, wie man unter Verwendung bestimmter Wiederholungsalgorithmen Zahlen kürzer darstellen kann. So ein Rechner ist ja (dumm, aber) schnell und rechnet es blitzartig wieder zurück.

So lange Darstellungen gibt es selten, nur wenn man e oder π mit möglichst vielen Dezimalen ausdrucken oder sonst irgendwelchen solchen Unsinn betreiben möchte. Eine solche Zahl wird dann ohnehin nicht gespeichert, sondern jedes Mal zum Output neu generiert. Im Übrigen gibt es die bekannten wissenschaftlichen Darstellungen (18 * 10^18 ≙ 1,8 E+19 oder dgl.), die trotz Ungenauigkeiten in den hinteren Stellen gewöhnlich ausreichend sind und auch im Computer intern verwendet werden - je nach Notwendigkeit.

Woher ich das weiß:eigene Erfahrung – Unterricht - ohne Schulbetrieb

Hi,

deine Annahme, dass du mit einem Byte 256 verschiedene Zustände darstellen kannst ist korrekt. Aber wie kommst du auf einen Zahl im 256 stelligen Bereich? Die Zahlen müssen ja irgendwie voneinander unterscheidbar sein. Wenn du nur 256 verschiedene Zustände kennst kannst du auch nur 256 Zahlen darstellen. Also 0 bis 255 oder -128 bis 127. Mehr geht nicht.

MfG

Trackfreak

ist sogar richtig .  jetzt nur noch überlegen wieviele bytes du wohl brauchst um die 256 stellige zahl darzustellen die der fragesteller wollte, dann ist das genau meine Antwort.

0
@ThomasAral

auf jeden fall nicht 256 / 3 (aufgerundet) ... sondern normal  256 ... mit der expertenantwort 256 / 2 ... oder eben ganz exakt mit einem eigenen 107 Byte Datentyp ... 107 Bytes.

0

Nein, eine Zahl im dreistelligen Bereich, 256 ist dreistellig (2 hoch 8 (ich weiß nicht, wie ich an diesem Laptop das "Hoch" hinkriege))

Das ^ befindet sich mit beim °-Zeichen und ist meist in der linken oberen Ecke der Tastatur.

1

Das heißt dann ja auch das ich z.B. mit 8 Bits nicht 150 mit 150 addieren kann. Das wären dann ja 300, was ja über 255 ist oder besser gesagt 127. true?

nö --- nur mit 2 stellen.  Um eine Ganzzahl mit 256 stellen genau darzustellen brauchst du --- Moment mal:   107 Bytes.  Da sowas aber meist als String dargestellt wird brauchst dann eben doch 256 Bytes.

viele sagen hier 3-stellig .. aber da man ja alle möglichen zahlen im 3-stelligen bereich will, wenn man das speichert, geht das nicht ... z.B.   500 kannst du nicht darstellen 

1
@Trackfreak

Sorry Trackfreak - aber ich kann an der Antwort von ThomasAral nichts grundlegendes Falsches entdecken.
Von der Tatsache mal abgesehen, daß er sich etwas unglücklich ausgedrückt hat.

0

WTF? Wenn man keine Ahnung hat sollte man einfach mal nicht Antworten. Diese Antwort ist FALSCH!

0
@Trackfreak

ich sagte "Ganzzahl genau darstellen" ... wenn du natürlich sie ungenau mit dem Real Datentyp darstellst brauchst du bedeutend weniger ... aber ich denke das würde jetzt erst richtig kompliziert das zu erklären. Soweit wollte der Fragesteller sicher nicht.

0