Wie @Serious schon sagte. Sie benötigen noch ein Bit, da Computer ab 0 zählen. Das ist eine 11 in "
Handsprache
2
Ich habe dies als "Keine echte Frage" abgeschlossen, da es schwierig ist zu sagen, was Sie eigentlich wissen möchten. Möchten Sie die binäre Darstellung einer Zahl kennen? Fragen Sie sich, wie es möglich ist, dass eine Zahl überhaupt existiert, obwohl sie nicht in ein Byte passt? Fragen Sie sich, wie Daten in Bits und Bytes gespeichert werden? Ja, 1 Byte kann nicht mehr als 8 Bits enthalten, da dies die Definition eines Bytes ist. Aber das setzt den Zahlen im Allgemeinen keine Grenzen.
Der Hochstapler
Sie können 256 nicht auf 8-Bit darstellen.
Overmind
Antworten:
40
Sie fragen, wie 256 in Binärdarstellung dargestellt werden sollen, aber ich schätze, Sie wundern sich, warum die Leute sagen, dass Bytes 256 verschiedene Zahlen speichern können, wenn die größte Zahl 255 ist. Wie Claudiop sagte, beginnen Computer bei 0 zu zählen, also bei 0 ist eigentlich die erste Zahl, 1 ist die zweite, 2 ist die dritte ... 255 ist die 256.
Außerdem ist 11111111 nur 255 für vorzeichenlose Bytes. Wenn Sie ein vorzeichenbehaftetes Byte haben (ein vorzeichenbehafteter Wert kann negative Werte enthalten), ist 11111111 tatsächlich -1. Siehe http://en.wikipedia.org/wiki/Two's_complement . Die Art und Weise, wie das Zweierkomplement funktioniert, ergibt 0, wenn eine negative Zahl zu einer positiven Zahl hinzugefügt wird. Wie bereits gesagt, wenn wir 11111111 ein bisschen hinzufügen und Ihr Datentyp nur 8 Bits unterstützen kann, läuft das letzte Bit über und lässt Sie zurück 0. Für vorzeichenbehaftete Bytes liegen die Werte zwischen -128 und 127. 128 negative Zahlen + 0 + 127 positive Zahlen = 256 Zahlen insgesamt.
Bei vorzeichenbehafteten Werten ist das erste Bit das "Vorzeichen" -Bit. Wenn dieses Bit gesetzt ist, ist die Zahl negativ. 10000000 ist negativ, 01000000 ist positiv, 11111111 ist negativ, 01111111 ist positiv ...
Wenn Sie mit Windows arbeiten (Mac hat es vielleicht auch), können Sie den Taschenrechner öffnen, in den Programmiermodus wechseln, sbyte auswählen und mit den Bits herumspielen, um zu sehen, wie sie mit ihren Dezimaldarstellungen korrelieren.
Wie Sie bereits wissen, entspricht 255d (dezimal) 11111111b (binär). Wenn Sie jetzt 1 zum Wert hinzufügen möchten, gibt es zwei Möglichkeiten:
Entweder haben Sie nur 8 Bits. In diesem Fall kommt es zu einem sogenannten Überlauf . Also "intern" wird die 1 addiert, was zu 100000000b (256d in 9 Bits) führt. Da Sie jedoch nur 8 Bits zur Verfügung haben, werden die unteren 8 Bits "zurückgegeben". Sie erhalten also 0d = 0b (ein spezielles Überlauf-Flag wird auf den meisten Computerarchitekturen gesetzt, nur als Randnotiz.)
Stellen Sie sich das genauso vor, als würden Sie mit Ihren Fingern zählen. Stellen Sie sich vor, Ihre Finger zeigen 9d. Jetzt fügst du noch einen Finger hinzu. Am Ende haben Sie 10 Punkte. Was tun Sie, wenn Sie noch einen hinzufügen möchten?
Die andere Möglichkeit ist, dass Sie mehr als 8 Bits zur Verfügung haben. In diesem Fall können Sie einfach eine weitere Ziffer an den Anfang anfügen und das Ergebnis ist 100000000b = 256d.
Ein Byte ist die kleinste "Einheit", die ein Computersystem (Speichersystem) adressieren kann. Das heißt, wenn Sie nur ein einziges Bit kennen wollen, müssen Sie das Speichersystem bitten, Ihnen ein bestimmtes Byte von einer Adresse zu geben, und Sie müssen dann den Wert des Bits herausfinden, das Sie an sich selbst interessiert.
Aber genauso wie 8 Bits ein Byte bilden, gibt es auch größere Datentypen. 2 Bytes ergeben ein Wort (16 Bit), zwei Wörter (vier Bytes, 32 Bit) ergeben ein Doppelwort. Und die heutigen Standard-64-Bit-Architekturen haben sogar 64-Bit-Datentypen (sogenannte Register).
Ja, und der Computer betrachtet diese 64 Bit nicht als eine Gruppe von 8 separaten Bytes, sondern als eine einzelne Einheit, die aus 64 Bit besteht. Wenn Sie beispielsweise Werte mit Vorzeichen haben, ist nur eines dieser 64 Bits das Vorzeichenbit.
Mr Lister
5
Es ist 100000000 und es benötigt mehr als ein Byte. Eigentlich braucht es 9 Bits.
Sie können es durch eine Bitverschiebungsoperation darstellen (links oder rechts, abhängig von der Endianität der binären Darstellung). Zum Beispiel funktioniert dieser eine Liner für eine Big-Endian-Darstellung (höchstwertiges Byte zuerst):
1 << 8
Ein Byte ohne Vorzeichen kann nur 256 Werte enthalten, einschließlich des Bereichs von [0 - 255]. Für den Wert 256 müssten Sie einen Datentyp verwenden, der einen größeren Wert enthalten kann, z. B. eine Ganzzahl.
Antworten:
Sie fragen, wie 256 in Binärdarstellung dargestellt werden sollen, aber ich schätze, Sie wundern sich, warum die Leute sagen, dass Bytes 256 verschiedene Zahlen speichern können, wenn die größte Zahl 255 ist. Wie Claudiop sagte, beginnen Computer bei 0 zu zählen, also bei 0 ist eigentlich die erste Zahl, 1 ist die zweite, 2 ist die dritte ... 255 ist die 256.
Außerdem ist 11111111 nur 255 für vorzeichenlose Bytes. Wenn Sie ein vorzeichenbehaftetes Byte haben (ein vorzeichenbehafteter Wert kann negative Werte enthalten), ist 11111111 tatsächlich -1. Siehe http://en.wikipedia.org/wiki/Two's_complement . Die Art und Weise, wie das Zweierkomplement funktioniert, ergibt 0, wenn eine negative Zahl zu einer positiven Zahl hinzugefügt wird. Wie bereits gesagt, wenn wir 11111111 ein bisschen hinzufügen und Ihr Datentyp nur 8 Bits unterstützen kann, läuft das letzte Bit über und lässt Sie zurück 0. Für vorzeichenbehaftete Bytes liegen die Werte zwischen -128 und 127. 128 negative Zahlen + 0 + 127 positive Zahlen = 256 Zahlen insgesamt.
Bei vorzeichenbehafteten Werten ist das erste Bit das "Vorzeichen" -Bit. Wenn dieses Bit gesetzt ist, ist die Zahl negativ. 10000000 ist negativ, 01000000 ist positiv, 11111111 ist negativ, 01111111 ist positiv ...
Wenn Sie mit Windows arbeiten (Mac hat es vielleicht auch), können Sie den Taschenrechner öffnen, in den Programmiermodus wechseln, sbyte auswählen und mit den Bits herumspielen, um zu sehen, wie sie mit ihren Dezimaldarstellungen korrelieren.
quelle
Nun, Sie brauchen 2 Bytes, um das darzustellen. 256 = 00000001 00000000
quelle
Wie Sie bereits wissen, entspricht 255d (dezimal) 11111111b (binär). Wenn Sie jetzt 1 zum Wert hinzufügen möchten, gibt es zwei Möglichkeiten:
Entweder haben Sie nur 8 Bits. In diesem Fall kommt es zu einem sogenannten Überlauf . Also "intern" wird die 1 addiert, was zu 100000000b (256d in 9 Bits) führt. Da Sie jedoch nur 8 Bits zur Verfügung haben, werden die unteren 8 Bits "zurückgegeben". Sie erhalten also 0d = 0b (ein spezielles Überlauf-Flag wird auf den meisten Computerarchitekturen gesetzt, nur als Randnotiz.)
Stellen Sie sich das genauso vor, als würden Sie mit Ihren Fingern zählen. Stellen Sie sich vor, Ihre Finger zeigen 9d. Jetzt fügst du noch einen Finger hinzu. Am Ende haben Sie 10 Punkte. Was tun Sie, wenn Sie noch einen hinzufügen möchten?
Die andere Möglichkeit ist, dass Sie mehr als 8 Bits zur Verfügung haben. In diesem Fall können Sie einfach eine weitere Ziffer an den Anfang anfügen und das Ergebnis ist 100000000b = 256d.
Ein Byte ist die kleinste "Einheit", die ein Computersystem (Speichersystem) adressieren kann. Das heißt, wenn Sie nur ein einziges Bit kennen wollen, müssen Sie das Speichersystem bitten, Ihnen ein bestimmtes Byte von einer Adresse zu geben, und Sie müssen dann den Wert des Bits herausfinden, das Sie an sich selbst interessiert.
Aber genauso wie 8 Bits ein Byte bilden, gibt es auch größere Datentypen. 2 Bytes ergeben ein Wort (16 Bit), zwei Wörter (vier Bytes, 32 Bit) ergeben ein Doppelwort. Und die heutigen Standard-64-Bit-Architekturen haben sogar 64-Bit-Datentypen (sogenannte Register).
quelle
Es ist 100000000 und es benötigt mehr als ein Byte. Eigentlich braucht es 9 Bits.
quelle
Sie können es durch eine Bitverschiebungsoperation darstellen (links oder rechts, abhängig von der Endianität der binären Darstellung). Zum Beispiel funktioniert dieser eine Liner für eine Big-Endian-Darstellung (höchstwertiges Byte zuerst):
Ein Byte ohne Vorzeichen kann nur 256 Werte enthalten, einschließlich des Bereichs von [0 - 255]. Für den Wert 256 müssten Sie einen Datentyp verwenden, der einen größeren Wert enthalten kann, z. B. eine Ganzzahl.
quelle