S
Reines ASCII triffst Du fast nirgend mer an, da im ASCII-Code zum Beispiel die Deutschen Umlaute nicht enthalten sind oder auch viele andere Schriftzeichen anderer Sprachen. Deshalb hat man UNI-Code entwickelt mit einer ISO-Standardisierung. Das soll dich jetzt aber nicht weiter verwirren, um das Prinzip verstehen zu können, reicht ASCII vollkommen, alles andere würde es nur komplizierter machen.
Nun zu deinem Beispiel, dem Integer. Nehmen wir einmal an, du hast 4 Bytes zur Verfügung, um eine vorzeichenlose Ganzzahl zu speichern (das entspricht einem unsigned long int), dann sind das 4 Byte * 8 Bit/Byte = 32 Bit. Diese 32 Bit zusammen könne jetzt 2^32 verschieden Zustände annehmen, deshalb ist die höchste so darstellbare, vorzeichenlose Ganzzahl 2^32 - 1 = 4294967295. So weit noch klar? Ich gehen jetzt mal davon aus.
Hast Du jetz aber ein ASCII-File, so wird jede Stellt der Zahl einzeln dargestellt und in einem Byte codiert und abgespeichert. Um auf das obige Beispiel zurückzukommen: Für die Zahl 4294967295 bräuchte ich in einer ASCII-Codierung also jetzt 10 Bytes, da jede Stelle ein eigenes Zeichen ist und auch so codiert und abgespeichert wird.
Würdest du jetzt ein solche Zahl aus einer Datei lesen wollen und in einem unsigned long int abspeicher, um mit ihr zu rechnen, so müsstest Du die zuerst mit einem Algorithmus berechnen, da dir ja nur die einzelnen Zeichen vorliegen.
Diese Funktion kannst Du selber schreiben (habe ich ein paar mal gemacht als Übung), musst du aber nicht, da es in der stdlib.h schon die Funktion atoi() gibt, die für dich ein string in einen int konvertiert (atol() konvertiert einen string in einen long).
Natürlich gibts auch stadard Funktionen, die das ganze umgekehrt machen, für einen int würde sie itoa() heissen. Du kannst diese Funktionen sonst mal anschauen.
Ich hoffe, ich konnte hilfreich sein,
Sputnik