Zeichen (Computer)
Im Computer und maschinenbasiert Telekommunikation Terminologie, a Charakter ist eine Einheit von Information das entspricht ungefähr a Graphem, graphemartige Einheit oder Symbol, wie in einem Alphabet oder Silbenschrift in dem geschrieben Form von a Natürliche Sprache.[1]
Beispiele für Zeichen umfassen Briefe, Numerische Ziffern, gemeinsames Interpunktion Markierungen (wie "." oder "-") und Whitespace. Das Konzept umfasst auch Steuerzeichen, die nicht sichtbare Symbole entsprechen, sondern den Anweisungen zum Format oder Verarbeiten des Textes. Beispiele für Kontrollzeichen umfassen Kutschenrückkehr oder Tabsowie Anweisungen zu Drucker oder andere Geräte, die Text anzeigen oder anderweitig verarbeiten.
Charaktere sind normalerweise zusammen in Kombination in Saiten.
Historisch gesehen der Begriff Charakter wurde auch verwendet, um nur eine bestimmte Anzahl von zusammenhängender Bezeichnung zu bezeichnen Bits. Während ein Charakter am häufigsten angenommen wird, dass sie sich auf 8 Bit (einer beziehen Byte) Heute, andere Definitionen, wie 6-Bit-Zeichencode war einmal beliebt (nur mit Verwendung oberer Fall, während genügend Bits auch darstellen, um auch darzustellen Kleinbuchstaben, nicht mit Zahlen und Zeichensetzung zulässig),[2][3] und sogar 5-Bit-Baudot-Code wurden auch in der Vergangenheit verwendet, und während der Begriff auch auf 4 Bit angewendet wurde[4] Mit nur 16 möglichen Werten war es nicht gedacht, und auch nicht das vollständige englische Alphabet darstellen. Siehe auch Universelle Charakter -Set -Zeichen, wo 8 Bit nicht ausreichen, um darzustellen, während alle mit einem oder mehreren 8-Bit dargestellt werden können Codeeinheiten mit UTF-8.
Codierung
Computer und Kommunikationsgeräte repräsentieren Zeichen mit a Zeichenkodierung das weist jedem Charakter etwas zu - einem ganze Zahl Menge durch eine Sequenz von Ziffern, normalerweise - das kann sein gelagert oder durch a übertragen Netzwerk. Zwei Beispiele für übliche Kodierungen sind ASCII und die UTF-8 Codierung für Unicode. Während die meisten Zeichencodierungen Zeichen zu Zahlen und/oder Bitsequenzen kartieren, Morse-Code Stattdessen repräsentiert Zeichen unter Verwendung einer Reihe von elektrischen Impulsen unterschiedlicher Länge.
Terminologie
Historisch gesehen der Begriff Charakter wurde von Branchenfachleuten weit verbreitet, um sich auf eine zu beziehen codierter Charakter, oft wie durch die Programmiersprache definiert oder API. Ebenfalls, Zeichensatz wurde häufig verwendet, um auf ein bestimmtes Repertoire von Zeichen zu verweisen, die auf bestimmte Bitsequenzen oder numerische Codes abgebildet wurden. Der Begriff Glyphe wird verwendet, um ein bestimmtes visuelles Erscheinungsbild eines Charakters zu beschreiben. Viele Computer Schriftarten bestehen aus Glyphen, die durch den numerischen Code des entsprechenden Zeichens indiziert werden.
Mit dem Advent und der weit verbreiteten Akzeptanz von Unicode[5] und Bit-Agnostic codierte Zeichensätze,[Klarstellung erforderlich] Ein Charakter wird zunehmend als Einheit von gesehen Informationunabhängig von einer bestimmten visuellen Manifestation. Das ISO/IEC 10646 (Unicode) Internationaler Standard Definiert Charakter, oder abstrakter Charakter als "Mitglied einer Reihe von Elementen, die für die Organisation, Kontrolle oder Darstellung von Daten verwendet werden". Die Definition von Unicode ergänzt dies mit erklärenden Notizen, die den Leser dazu ermutigen, unter anderem zwischen Zeichen, Graphemen und Glyphen zu unterscheiden. Eine solche Differenzierung ist ein Beispiel für das breitere Thema der Trennung von Präsentation und Inhalt.
Zum Beispiel die Hebräer Brief Aleph ("א") wird oft von Mathematikern verwendet, um bestimmte Arten von zu bezeichnen Unendlichkeit (ℵ), aber es wird auch im gewöhnlichen hebräischen Text verwendet. In Unicode werden diese beiden Verwendungen als unterschiedliche Zeichen angesehen und haben zwei verschiedene numerische Unicode -Kennungen ("("Codepunkte"), obwohl sie identisch gerendert werden können. Umgekehrt, die Chinesisch Logogramm Für Wasser ("水") kann ein etwas anderes Aussehen in haben japanisch Texte als in chinesischen Texten und lokal Schriften kann dies widerspiegeln. In Unicode gelten sie jedoch als dasselbe Zeichen und teilen den gleichen Codepunkt.
Der Unicode -Standard unterscheidet auch zwischen diesen abstrakten Zeichen und codierte Zeichen oder codierte Zeichen Das wurden mit numerischen Codes gepaart, die ihre Darstellung in Computern erleichtern.
Charakter kombinieren
Das Charakter kombinieren wird auch von Unicode angesprochen. Zum Beispiel weist Unicode einen Codepunkt auf jeden von zu
- 'I' (U+0069),
- das Kombinieren Diaerese (U+0308) und
- 'ï' (u+00EF).
Dies ermöglicht es, das mittlere Zeichen des Wortes 'naiv' entweder als einzelne Zeichen 'ï' oder als Kombination des Charakters zu codieren 'ich ' mit der kombinierten Diaerese: (u+0069 Lateinischer kleiner Buchstaben I+U+0308 Kombination Diaeresis); Dies wird auch als "ï" gemacht.
Diese werden durch den Unicode -Standard als kanonisch äquivalent angesehen.
verkohlen
A verkohlen in dem C Programmiersprache ist ein Datentyp mit der Größe von genau einem Byte,[6] Was wiederum so definiert ist, dass es groß genug ist, um ein Mitglied des „Grundausführungszeichens“ zu enthalten. Die genaue Anzahl der Bits kann über überprüft werden CHAR_BIT
Makro. Bei weitem die häufigste Größe beträgt 8 Bit und der POSIX -Standard erfordert Es ist 8 Bit.[7] In neueren C -Standards verkohlen ist erforderlich, um zu halten UTF-8 Codeeinheiten[6] Dies erfordert eine Mindestgröße von 8 Bit.
A Unicode Der Codepunkt erfordert möglicherweise bis zu 21 Bit.[8] Dies wird nicht in einen passen verkohlen Auf den meisten Systemen wird für einige von ihnen mehr als eins verwendet, wie in der Codierung der variablen Länge UTF-8 wobei jeder Codepunkt 1 bis 4 Bytes dauert. Darüber hinaus erfordert ein "Charakter" möglicherweise mehr als einen Codepunkt (z. B. mit Charaktere kombinieren), je nachdem, was unter dem Wort "Charakter" gemeint ist.
Die Tatsache, dass ein Charakter historisch in einem einzigen Byte gespeichert wurde, führte zu den beiden Begriffen ("Char" und "Charakter") in den meisten Dokumentationen austauschbar. Dies macht die Dokumentation häufig verwirrend oder irreführend, wenn Multibyte-Codierungen wie UTF-8 verwendet werden, und hat zu ineffizienten und falschen Implementierungen von String-Manipulationsfunktionen geführt (z. Bytes). Moderne POSIX -Dokumentation versucht, dies zu beheben und "Zeichen" als eine Abfolge eines oder mehrerer Bytes zu definieren, die ein einzelnes grafisches Symbol oder einen Kontrollcode darstellen, und versucht, "Byte" zu verwenden, wenn sie sich auf Zeichendaten beziehen.[9][10] Es enthält jedoch immer noch Fehler wie das Definieren eines Arrays von verkohlen Als ein Charakter -Array (eher als ein Byte -Array).[11]
Unicode kann auch in Saiten gespeichert werden, die aus Codeeinheiten bestehen, die größer als verkohlen. Diese nennt man "breite Charaktere". Der ursprüngliche C -Typ wurde genannt wchar_t. Aufgrund einiger Plattformen, die definieren wchar_t Als 16 Bit und andere, die es als 32 Bit definieren, haben sich jüngste Versionen hinzugefügt char16_t, char32_t. Selbst dann sind die gespeicherten Objekte möglicherweise keine Zeichen, zum Beispiel die variable Länge UTF-16 wird oft in Arrays von gespeichert char16_t.
Andere Sprachen haben auch a verkohlen Typ. Einige wie C ++ Verwenden Sie 8 Bit wie C. andere wie Java Verwenden Sie 16 Bit für verkohlen Um UTF-16-Werte darzustellen.
Siehe auch
- Charakter wörtlich
- Zeichen (Symbol)
- Charakter füllen
- Charakter kombinieren
- Universelle Charakter -Set -Zeichen
- Homoglyphe
Verweise
- ^ "Definition des Charakters". www.merriam-webster.com. Abgerufen 2018-04-01.
- ^ Dreyfus, Phillippe (1958). "Systemdesign der Gamma 60". Verwaltung von Anforderungen Wissen, internationaler Workshop auf, Los Angeles. New York. S. 130–133. doi:10.1109/afips.1958.32.
[…] Interner Datencode wird verwendet: Quantitative (numerische) Daten werden in einem 4-Bit-Dezimalcode codiert; Qualitative (alpha-numerische) Daten werden in einem 6-Bit-alphanumerischen Code codiert. Die inneren Anweisungscode bedeutet, dass die Anweisungen im geraden Binärcode codiert werden.
In Bezug auf die interne Informationslänge wird das Informationsquantum als "als" bezeichnet "Catena, "Und es besteht aus 24 Bits, die entweder 6 Dezimalstellen oder 4 alphanumerische Zeichen darstellen. Dieses Quantum muss ein Vielfachen von 4 und 6 Bits enthalten, um eine ganze Anzahl von Dezimal- oder Alphanumerikern darzustellen. Vierundzwanzig Bit wurde festgestellt. Ein guter Kompromiss zwischen den mindestens 12 Bits, was zu einem zu niedrigen Übertragungsfluss aus einem parallelen Ausleser-Kerngedächtnis und 36 Bit oder mehr führen würde, was als zu groß beurteilt wurde, als ein Informationsquantum. Die Catena ist als die betrachtet zu werden Äquivalent eines Charakters in Variablen Wort Längenmaschinen, aber es kann nicht so genannt werden, da es mehrere Zeichen enthalten kann. Es wird in Reihe an und vom Hauptspeicher übertragen.
Ich wollte kein "Quanten" ein Wort oder eine Reihe von Zeichen als Buchstaben nennen (ein Wort ist ein Wort und ein Quantum ist etwas anderes), ein neues Wort wurde gemacht, und es wurde "Catena" genannt. Es ist ein englisches Wort und existiert in Webster Obwohl es nicht auf Französisch ist. Websters Definition des Wortes Catena lautet "Eine vernetzte Serie"; Daher ein 24-Bit-Informationselement. Das Wort Catena wird im Folgenden verwendet.
Der interne Code wurde daher definiert. Was sind nun die externen Datencodes? Diese hängen hauptsächlich von der beteiligten Informationshandhabung ab. Das Gamma 60 ist so konzipiert, dass Informationen, die für jede binäre codierte Struktur relevant sind, verarbeitet werden. Somit wird eine 80-Kolumn-Lochkarte als 960-Bit-Informationsartikel angesehen. 12 Zeilen multipliziert mit 80 Spalten entsprechen 960 mögliche Schläge; wird als genaues Bild in 960 magnetischen Kernen des Hauptspeichers mit 2 Kartensäulen gespeichert, die eine Catena besetzen. […] - ^ Blaauw, Gerrit Anne; Brooks Jr., Frederick Phillips; Buchholz, Werner (1962), "4: natürliche Dateneinheiten" (PDF), in Buchholz, Werner (ed.), Planung eines Computersystems - Projektstrecke, McGraw-Hill Book Company, Inc. / The Maple Press Company, York, Pa., S. 39–40, Lccn 61-10466, archiviert (PDF) vom Original am 2017-04-03, abgerufen 2017-04-03,
[…] Hier verwendet, um die vom Maschinendesign auferlegte Struktur zusätzlich zu beschreiben bisschen, Sind unten aufgeführt.
Byte Zeigt eine Gruppe von Bits an, die zur Codierung eines Zeichens oder der Anzahl der parallel zu und von Eingabe-Output-Einheiten übertragenen Bits verwendet werden. Ein anderer Begriff als Charakter wird hier verwendet, da ein bestimmtes Zeichen in verschiedenen Anwendungen durch mehr als einen Code dargestellt werden kann und verschiedene Codes unterschiedliche Anzahl von Bits verwenden können (d. H. unterschiedliche Bytegrößen). Bei der Übertragung von Eingaben-Output kann die Gruppierung von Bits vollständig willkürlich sein und keinen Zusammenhang zu tatsächlichen Zeichen haben. (Der Begriff wird von geprägt von beissen, aber wieder aufgenommen, um versehentliche Mutation zu vermeiden bisschen.))
A Wort besteht aus der Anzahl der Datenbits, die parallel von oder zum Speicher in einem Speicherzyklus übertragen werden. Wortgröße wird daher als strukturelle Eigenschaft des Gedächtnisses definiert. (Der Begriff Catena wurde zu diesem Zweck von den Designern der Stier Gamma 60 Computer.)
Block Bezieht sich auf die Anzahl der Wörter, die an oder von einer Eingabe-Ausgabeeinheit übertragen werden, als Reaktion auf eine einzelne Eingabe-Output-Anweisung. Die Blockgröße ist eine strukturelle Eigenschaft einer Eingangseinheit. Es kann durch das Design festgelegt oder durch das Programm variiert werden. […] - ^ "Begriffe und Abkürzungen". MCS -4 -Programmierhandbuch für Montagesprachenhandbuch - Programmierhandbuch für Intellek 4 Mikrocomputersysteme (PDF) (Vorläufige Ausgabe). Santa Clara, Kalifornien, USA: Intel Corporation. Dezember 1973. S. V, 2-6. MCS-030-1273-1. Archiviert (PDF) vom Original am 2020-03-01. Abgerufen 2020-03-02.
[…] Bisschen - Die kleinste Informationseinheit, die dargestellt werden kann. (Ein bisschen kann in einem von zwei Zuständen i 0 oder 1 sein). […] Byte - Eine Gruppe von 8 zusammenhängenden Bits, die einen einzelnen Speicherort besetzen. […] Charakter - Eine Gruppe von 4 zusammenhängenden Datenbits. […]
(Nb. Dies Intel 4004 Handbuch verwendet den Begriff Charakter in Bezug auf 4-Bit eher als 8-Bit Daten Entitäten. Intel schaltete um den häufigsten Begriff knabbern Für 4-Bit-Unternehmen in ihrer Dokumentation für den nachfolgenden Prozessor 4040 im Jahr 1974 schon.) - ^ Davis, Mark (2008-05-05). "Wechsel zu Unicode 5.1". Google Blog. Abgerufen 2008-09-28.
- ^ a b "§1.7 Das C ++ Speichermodell / §5.3.3 sizeof". ISO/IEC 14882: 2011.
- ^ "<limits.h>". Pubs.opengroup.org. Abgerufen 2018-04-01.
- ^ "Glossar von Unicode -Begriffen - Codepunkt". Abgerufen 2019-05-14.
- ^ "POSIX -Definition des Charakters".
- ^ "Possix Strlen Referenz".
- ^ "POSIX -Definition von Charakterarray".
Externe Links
- Charaktere: Eine kurze Einführung durch das Linux Information Project (LINFO)
- ISO/IEC TR 15285: 1998 Fasst das Charaktermodell des ISO/IEC zusammen und konzentriert sich auf Terminologiedefinitionen und die Unterscheidung zwischen Zeichen und Glyphen