Frage zu XCode

R

rollohusa

Mitglied
Thread Starter
Dabei seit
15.08.2005
Beiträge
91
Reaktionspunkte
0
Hi,

da ich jetzt fürs Studium etwas C programmieren muss, habe ich jetzt mal XCode installiert.

Nun habe ich ein Problem!
Ich soll mit C eine ASCII-Tabelle ausgeben. Soweit alles ok und nicht all zu schwer. Aber ab der dezimalen Stelle 128 gibt er die ASCII-Zeichen nicht mehr korrekt aus!

Sieht dann etwa so aus!
Hier mal ein Auszug!
119 w
120 x
121 y
122 z
123 {
124 |
125 }
126 ~
127 
128 \200
129 \201
130 \202
131 \203
132 \204
133 \205
134 \206
135 \207
136 \210

Kann ich da was gegen machen? Oder kann MACOSX diese Zeichen nicht darstellen?
 
Ist es möglich, dass dort ein Überlauf einer Variablen eines bestimmten Typs vorkommt?

Die 128 ist so magisch irgendwie (INT-Überlauf?)
 
Zuletzt bearbeitet:
Keine Ahnung!
XCode gibt mir keinerlei Fehlermeldung zurück.
Btw: Auf meinem PC funzt es wunderbar!
 
Bin kein wirklicher Experte auf dem Gebiet, aber meines Wissens besteht die ASCII-Tabelle nur aus 128 Zeichen.

Gruß,
Johannes
 
XCode gibt mir keinerlei Fehlermeldung zurück.

Macht Haskell auch nicht *lol*.
Dort geb ich ein 9*9 - funzt. 99999*99999 - das Ergebnis ist ne negative Zahl ;)

kP, habe das so gelernt, dass aufgrund des 2Komplements es zu einem Überlauf beim Integer-Typ kommt (in den meisten funktionalen Sprachen) - die geben auch nix zurück an Fehlern :|

Aber kann auch sein, dass ich grad Bullshit rede, und das nix mit deinem Prob zu tun hat.
 
jobed77 schrieb:
Bin kein wirklicher Experte auf dem Gebiet, aber meines Wissens besteht die ASCII-Tabelle nur aus 128 Zeichen.

Gruß,
Johannes

loool, ja, stimmt eigentlich... - aber warum hat der windows-ascii-zeichensatz dann mehr als 128 ?!
 
Auf Wikipedia gefunden:

Kompatible Zeichenkodierungen

Viele Zeichenkodierungen sind so entworfen, dass sie für Bytes im Bereich 0…127 das gleiche Zeichen kodieren wie ASCII und die Bytes 128…255 für die Darstellung weiterer Zeichen benutzen.

Denke das dürfte das erklären :)
 
Stimmt. Das war doch noch vor Unicode. Da versuchte man sich noch aus der Patsche zu helfen, indem man "inoffiziell" die tabelle erweitert hat. OS X scheint nicht mitgezogen zu haben, wie andere auch.

Generell ist Ascii ja eigentlich "out" und man soll auf Unicode umstellen.

Aber wie in so vielen Dingen, klappt das mit der Umstellung nich so ganz und einige versuchen ihr eigenes Ding durchzuziehen :|
 
HIER hab ich mal eine die bis 255 geht. Und laut Aufgabenstellung soll wir das auch bis 255 machen!
 
Hmm.
Also heißt das jetzt, dass ich die Aufgabe doch mit meinem PC lösen muss!
Schade schade!
 
keine Ahnung - man müsste mal wissen, wer welche Ascii-tables benutzt.
 
rollohusa schrieb:
Hmm.
Also heißt das jetzt, dass ich die Aufgabe doch mit meinem PC lösen muss!
Schade schade!

Wieso, einfach die Zeichen nur bis 127 ausgeben, oder?
 
Ähem, ich mag ja falsch liegen:

ASCII ist ein 7-Bit Zeichensatz und daher nur bis 128 definiert wenn ihr mich fragt.
Die Zeichen darüber sind m.E. nicht fest definiert!
Man möge mich ggf. korrigieren!
 
Das stimmt schon ASCII hat einen Umfang von 7bit also 2hoch 7 Zeichen = 128.
Dezimal geht das dann von 0-127.

Unicode hat auch den ASCII Code auf den ersten 7 bits. Nur manche Steuerzeichen kann man eben schlecht auf der Konsole ausgeben (wie DEL an 127.Stelle)...

Dazu gibts sogar ein Dokument in der Developer Doku, ich finds aber grad net...
 
Zuletzt bearbeitet:
ASCII ist 8bit = 1 Byte = 255 verschiedene Zeichen.
die 7bit hießen EPSIDIC (oder so ähnlich - ist schon langeher)

Allerdings sind die Zeichen je nach Codepage unterschiedlich! Ein paar sind fest definiert (also 27=ESC, 32=space, 65 = A, etc.) aber schon unter DOS waren die erweiterten Zeichen (eben ab 128) je nach Codepage unterschiedlich. Entweder Sonderzeichen oder z.B. Rahmen (einfache/doppelte Linien)

Würde mich also nicht wundern, wenn dieser Bereich zwischen den Systemen nicht kompatibel ist.
 
elastico schrieb:
ASCII ist 8bit = 1 Byte = 255 verschiedene Zeichen.
die 7bit hießen EPSIDIC (oder so ähnlich - ist schon langeher)
...
nicht ganz: Ur-ASCII war auch nur für 7 Bit definiert (aber 8 Bit verwendet), in einigen Codes gab es ja auch hier schon Mehrdeutigkeiten (Umlaute usw.). In den freien 128 Codierungen hat jeder gemacht, was er wollte, so die Klötzchengrafik der IBM-PCs, dann die verschiedenen Codetabellen...
EBCDIC ("Extended Binary Coded Decimal Interchange Code", wenn ich mich nicht täusche) hatte einfach eine andere Belegung, wurde auf IBM Großrechnern verwendet und hat sich einfach nicht durchsetzen können (die Handhabung war auch nicht sehr bequem, weil die Codes etwa des Alfabets nicht durchgängig waren).
Grüße,
Matthias
 
rollohusa schrieb:
Hmm.
Also heißt das jetzt, dass ich die Aufgabe doch mit meinem PC lösen muss!
Schade schade!
Eigentlich nicht, du brauchst nur eine char-Abbildung auf eine passende Codetabelle in Unicode.
"Nur" ... nach der Aufgabenstellung scheint ohnehin eine Win-Codierung erwartet zu werden.
Grüße,
Matthias
 
elastico schrieb:
ASCII ist 8bit = 1 Byte = 255 verschiedene Zeichen.
die 7bit hießen EPSIDIC (oder so ähnlich - ist schon langeher)
Nicht rumraten; ASCII ist 7-bit, EBCDIC was voellig anderes. Alles weiter als 127 sind bestimmte erweiterte Zeichensaetze, die in einer Codepage definiert werden. So auch die weiter oben angegebene "ASCII-Tabelle bis 255", die zeigt auch nur eine bestimmte Codepage.

Koennte das Problem, um das es hier geht, moeglicherweise einfach an den Einstellungen des ausgebenden "Geraets" liegen, also vermutlich der Codepage-Einstellung des Terminals? Bis 127 zeigt es richtig an, danach kommen Sonderzeichen, die in einem bestimmten Encoding ausgegeben werden?

Wile
 
ASCII = 7 bit = 128 Zeichen (0-127)

Windows = ANSI = ASCII + ANSI-Erweiterung

Siehe auch (mal kurz google benutzt): http://www.torsten-horn.de/techdocs/ascii.htm

Wenn eine reine ASCII-Tabelle 255 Zeichen haben soll, ist das eine nicht lösbare Aufgabe. Und ein normaler C-Compiler wird nicht mehr als 128 ASCII-Zeichen erstellen können, wenn du sagt es soll eine ASCII-Tabelle erstellt werden.

Weiß nicht ob der Windows-C-Compiler da wieder was eigenes macht.
 
Zurück
Oben Unten