Warum 255 ist das limit
Ich habe gesehen, viele Orte sagen:
Die maximale Anzahl von Zeichen, ist 255.
wo Zeichen sind ASCII. Gibt es einen technischen Grund dafür?
EDIT: ich weiß, ist "ASCII", vertreten durch 8 bits und so gibt es 256 verschiedene Zeichen. Die Frage ist, warum tun Sie, geben Sie die maximale ANZAHL der Zeichen (mit Duplikaten) ist 255.
Bitte beachten Sie, dass es keine Charakter-set mit dem Namen "extended ASCII". Es ist sehr wichtig, genau zu sagen, die man (z.B. CP437 und Windows-1252).
Nicht sicher, wo diese Forderung kam aus, aber vielleicht etwas zu tun mit der Sprache C Behandlung 0 als string-terminator.
Was auch immer die Antwort, die Aussage oben über 255 Zeichen in ASCII ist falsch. Es vergisst die 00h bewertet Oktett es verwendet den erweiterten ASCII-Satz, und vergisst die Löcher (nicht zugeordnete bytes) im ASCII-Zeichensatz. Diese Art von Kommentaren sind in der Regel gelegt, wo die Leute verstehen nicht den Unterschied zwischen Byte -, text-und null-terminiert
Nicht sicher, wo diese Forderung kam aus, aber vielleicht etwas zu tun mit der Sprache C Behandlung 0 als string-terminator.
Was auch immer die Antwort, die Aussage oben über 255 Zeichen in ASCII ist falsch. Es vergisst die 00h bewertet Oktett es verwendet den erweiterten ASCII-Satz, und vergisst die Löcher (nicht zugeordnete bytes) im ASCII-Zeichensatz. Diese Art von Kommentaren sind in der Regel gelegt, wo die Leute verstehen nicht den Unterschied zwischen Byte -, text-und null-terminiert
char*
Werte. Gehen Sie vorsichtig vor, wenn Sie finden Aussagen wie diese und erwarten, dass alles (vor allem bugs und buffer overruns).InformationsquelleAutor Zhi | 2014-10-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erweiterten ASCII - ist ein 8-bit-Zeichensatz. (Original-ASCII-7-bit, aber das ist hier nicht relevant.)
8 bit bedeutet dass 2^8 verschiedene Zeichen, auf die verwiesen werden kann.
2^8 gleich 256 ist, und wie die Zählung beginnt mit
0
, die maximale ASCII-char-code " hat den Wert 255.So, die Aussage:
ist falsch, Sie sollte lauten:
Besser verstehen, wie die Zeichen zugeordnet sind, die die zahlen von 0 bis 255, siehe die 8-bit-ASCII-Tabelle.
Huh? Natürlich ist es ASCII, es ist alles geschrieben über die Seite. Wo sehen Sie einen Hinweis, dass es nicht ASCII? Und, gibt es 256 (0 - 255) die Symbole, genau wie ich sagte.
"Auf dieser Homepage finden Sie 8 bit, 256 Zeichen nach ISO 8859-1 und Microsoft® Windows Latin-1." So ist es einer von vielen "Extended ASCII" Zeichensätze. Beim Umgang mit Zeichensätzen und Kodierungen, ist es unerlässlich, zu sagen, welches entweder durch Namen oder durch Verweis auf den thread/Prozess/Benutzer/OS-Standard. Es sieht aus wie Windows-1252. Ich habe nicht überprüfen Sie die gesamte Tabelle, aber ich habe die Löcher an 81, 8D, 8F, 90, 9D.
Ok, ich bekomme Ihren Punkt. 🙂 Meine Antwort in der Tat oversimplifies Dinge, aber ich denke, es ist eine ausreichende Antwort auf die ursprüngliche Frage. Vielen Dank für Ihre Anmerkungen, aber.
InformationsquelleAutor lxg
Ich nehme an, die Grenze, die Sie sich beziehen, ist auf die Länge einer Zeichenfolge von ASCII-Zeichen.
Die Begrenzung erfolgt durch eine Optimierung Verfahren, bei dem kleinere strings gespeichert sind, mit dem ersten byte holding die Länge der Zeichenfolge. Da ein byte nur 256 verschiedene Werte, die maximale Länge der Zeichenfolge wäre 255, da das erste byte reserviert war für die Speicherung der Länge.
Einige ältere Datenbank-Systeme und Programmiersprachen daher diese Einschränkung auf Ihre native string-Typen.
InformationsquelleAutor Silveri
Ja, es ist. Früh ASCII-Codierung standard-7-bit Protokoll, das darstellen kann 2^7 = 128 (0 .. 127) verschiedene Zeichen-codes.
Was Sie hier reden ist eine Variante des ASCII-Kodierung entwickelt, die später die 8-bit-Protokoll und halten kann 2^8 = 256 (0 .. 255) Zeichen-codes.
Sehen Wikipedia für weitere Informationen über die gleichen.
InformationsquelleAutor Rahul
ist die Grenze 255, weil 9+36+84+126 = 255. der 256th Zeichen (das ist wirklich das erste Zeichen) ist null.
mithilfe der combinatoric Formel Ck(n) = n/k = n!/(k!(n-k)!) zu finden ist die Anzahl der nicht-wiederholenden Kombinationen für 1,2,3,4,5,6,7,8 Ziffern, die Sie erhalten:
der Ziffern: 1 2 3 4 5 6 7 8
Kombinationen: 9 36 84 126 126 84 36 9
ist es überflüssig, 5-8-stellig, da es eine symmetrische Gruppe von M. in anderen Worten, eine 4-element-generator ist eine Gruppe, die operation für ein Oktett und seine Gruppe Aktion hat 255 Permutationen.
interessant, es erfordert nur 3 Ziffern zu "zählen", um 1000 (nach 789 der rest der zahlen sind Wiederholungen von vorherigen Kombinationen).
InformationsquelleAutor RNH