Textdatei mit einer Größe von 48kB wurde erhalten.Wie viele Buchstaben würden sie auslesen, wenn es um eine Original und erweiterte ASCII‐Kodierung handelt?

Erzesel  19.10.2020, 12:56

Hat das besondere Gründe, weshalb Du die Dateigröße in Deiner Frage geändert hast? ...auch wenn dies keinen größeren Impakt auf die Antworten haben dürfte...

Enn7709 
Beitragsersteller
 19.10.2020, 13:20

ich habe mehrere fragen, deswegen. Aber wenn ich verstehen würde, könnte ich weitere selber lösen.

5 Antworten

Wenn Du wirklich Buchstaben [a..z],[A..Z] meinst hängt es davon ab wieviel "Nichtbuchstaben" im Text enthalten sind. Jeder Zeilenvorschub in einer Windows ASCII-Datei sind schon mal 2 Zeichen CR LF, die keine Buchstaben sind...(Ja.. nichtmal angezeigt werden). Kommata ,Punkte ua Satzzeichen sind auch keine Buchstaben... usw..

Insofern kann man Deine Frage nicht beantworten ohne den Text zu kennen. (Selbst wenn man annimmt, das es sich um Pures ASCII (8 Bit-Zeichen) handelt.

Im übrigen hat die Art des ASCII keinen Einfluss auf die Dateigröße, sondern lediglich . Auf die Art der Darstellung. (Bei 7-Bit ASCII war das 8.Bit für für Besondere Darstellung (Blinkbit) vorgesehen.

Das Unicode-Problem beim Zählen hat TinaAusWien bereits ausführlich erklärt.

Vorausgesetzt Du beziehst alle 255 möglichen ASCII-Zeichen in den Begriff Buchstaben ein, hat eine 56kB große Datei 56000. Allerdings könnte sich der Wert auch auf die alte "Handhabung" 1kB=1024 beziehen, dann sind es 57344 Zeichen . (Zur Besseren Diffamierung der Einheiten verwendet man heute die Einheit KiB (KibiByte) für 1024Byte.

Schlecht wenn Problemstellung Falsch oder Unpräzise formuliert sind . Im Bereich der Informatik arbeitet man mit Formulierungen, die keine Zweifel offen lassen.

Buchstaben sind eben nur die Zeichen [a..z],[A..Z] der Text könnte ebensogut aus Ziffern oder Kommata oder/und Leerzeichen bestehen , dann wäre die Antwort 0. .

Aber wenn ich verstehen würde, könnte ich weitere selber lösen.

...Ich fürchte, dies ist das Hauptproblem...🤔

Hier haben mehrere Fachleute erfolglos versucht, Dir nahezulegen, dass bereits Deine Fragestellung nicht dazu angetan ist eine befriedigende Antwort zu geben.

Dein Grundproblem besteht wohl darin, das Du nicht einmal über das nötige Basisverständnis von Informatik verfügst um eine sinnvolle Frage auf diesem Gebiet zu stellen. Allerdings hat auch niemand hier die Zeit für einen Einführungskurs in Informatik.

Zeichensatz und Kodierung sind unterschiedliche Dinge.

Deshalb ist die Frage deines Lehrers nicht zu beantworten.

ASCII ist ein Zeichensatz mit 128 definierten Codepoints, die in sieben Bit Platz finden.

Kodiert wird dieser üblicherweise mit 8 Bit pro Codepoint, wobei das höherwertigste Bit auf 0 gesetzt wird.

Unicode ist ein Zeichensatz mit unvergleichbar viel mehr Codepoints.

Die untersten Codepoints werden im Speicher oft unkodiert in Form von UCS-2 bzw. UCS-4 dargestellt, und manchmal auch nur in einem einzigen Byte, falls man nicht mehr als die ersten 256 Codepoints benötigt.

Die ersten 128 Codepoints von Unicode entsprechen denselben wie im gesamten ASCII-Zeichensatz.

Es gibt aber noch unzählige weitere "erweiterte ASCII Zeichensätze", wie zum Beispiel die ISO-8859-X Familie, die keine spezielle Kodierung kennen, sondern bei denen die Codepoints einfach der binären Darstellung entsprechen.

Da viele Kodierungen erweiterter ASCII-Zeichensätze aber so speziell kodiert werden, dass es keine fixe Anzahl an Bits bzw. Bytes pro Zeichen bzw. Codepoint gibt, ist deine Frage nicht zu beantworten.

Unicode ist ein erweiterter ASCII-Zeichensatz, kann aber in UTF-8 kodiert werden, wobei ein Zeichen dann 1, 2, 3 oder 4 Byte einnimmt.

Wenn ich also das Wort "Öl" in einer Textdatei mit ISO-8859-15 Kodierung speichere, ist sie 2 Byte groß. Speichere ich die Datei hingegen mit UTF-8, dann ist sie 3 Byte groß.

Die Dateigröße hängt also weniger von der Kodierung, als viel mehr vom enthaltenen Text ab.

Wenn deine Textdatei also 56KB groß ist, kann es sein, dass die Datei mit erweitertem ASCII genauso groß ist, nämlich 56KB.

Und wenn der Inhalt nur aus Umlauten besteht, und die Datei als UTF-8 kodiert ist, dann wird sie genau doppelt so groß sein, nämlich 112KB.

Ein normaler deutscher Text enthält aber eine nicht genau definierte Anzahl an Umlauten. Deshalb ist es unmöglich zu sagen, wie groß die resultierende Datei sein wird.

Falls man aber ISO-8859-15 als Kodierung wählt, wird die Datei auch mit Umlauten die gleiche Größe, also 56KB, haben.

Und nebenbei ist die Fragestellung gleich doppelt schwachsinnig, da man unter "Buchstabe" normalerweise keine Leerzeichen oder Sonderzeichen versteht.

Es hängt also gleich doppelt vom enthaltenen Text ab, welche Antwort korrekt ist.

Alles in allem eine extrem schlechte Fragestellung. Der Lehrer sollte unbedingt präziser formulieren, wenn er eine sinnvolle Antwort erwartet!

Woher ich das weiß:Berufserfahrung

56000 byte

1 buchstabe = ein byte

56000 buchstaben :D


Enn7709 
Beitragsersteller
 19.10.2020, 00:16

Hi, vielen Dank, also einfach datengröße mit 1000 multiplizieren?

0

Mit erweiterte Codierung meinst du Unicode, das sind 2 Bytes pro Zeichen also die Hälfte.

Woher ich das weiß:eigene Erfahrung

alfredo153  19.10.2020, 10:00
Unicode, das sind 2 Bytes pro Zeichen

Das ist in mehrfacher Hinsicht falsch. Zum einen umfasst Unicode weitaus mehr als die 64k Codepoints, die in 2 Bytes Platz haben. Zum anderen ist "zwei Bytes pro Zeichen" nur eine von vielen Kodierungen (UCS-2), die für Unicode möglich sind - und nichtmal die gängigste, im Gegenteil. Das wären heute eher die Kodierungen mit variabler Länge: UTF-8 und zuweilen auch UTF-16.

2
Enn7709 
Beitragsersteller
 19.10.2020, 00:18

also 56000/2?

0
geri3d  19.10.2020, 00:19
@Enn7709

Genau. Sowas wie ❤😁oder 🤦‍♂️

0
Enn7709 
Beitragsersteller
 19.10.2020, 00:27
@geri3d

sorry, der Lehrer hat einfach sehr viele Fragen gestellt an uns für Anfänger, Unicode habe ich noch nicht angeschaut

1
geri3d  19.10.2020, 00:29
@Enn7709

Das beinhaltet kyrillische und japanische bzw chinesische Zeichen und Emojis.

0