Inhalt einer Datei anzeigen / Dump Programm
-
also müsste das ein unsigned char sein? bzw gibts sowas überhaupt?
-
habs grad ausprobiert unsigned char geht auch ohne zeichen&0xFF
Alle Ganzzahltypen gibt es in einer signed und in einer unsigned-Variante, wobei man das unsigned immer angeben muß. char 8Bit, short 16Bit, int 16/32Bit und long 32Bit
void main(
Habs grad noch gesehen ieeeeehhhhhh Maaaaammaaaaa!!!!!
-
ja ich weis ich müll mein speicher mit void zu , wird natürlich noch geändert
-
nur irgendwie ist mir die erklärung warum as unsignend werden muß noch nicht ganz klar.
gut möglich das ich jemandem erklären muß warum da nen unsigned steht.
-
Dragonslayer schrieb:
ja ich weis ich müll mein speicher mit void zu....
der gehört eindeutig auf diese liste: http://www.daujones.com/dausprueche.php
-
Dragonslayer schrieb:
nur irgendwie ist mir die erklärung warum as unsignend werden muß noch nicht ganz klar.
gut möglich das ich jemandem erklären muß warum da nen unsigned steht.Das muss kein unsigned werden... maskier die Ausagbe einfach mit &0xFF und gut ist
-
codefrag schrieb:
Das muss kein unsigned werden... maskier die Ausagbe einfach mit &0xFF und gut ist
doch, musses.
maskieren mit 0xff hilft nix, weil das höchste bit (vorzeichenbit) erhalten bleibt.
-
Kann mir nochmal jemand erklären warum?
Ist mir jetzt irgendwie net so ganz klar geworden.Bei welche Sachen schlägt es +berhaupt fehl wenn ich kein unsigned mache?
-
Dragonslayer_ schrieb:
Bei welche Sachen schlägt es +berhaupt fehl wenn ich kein unsigned mache?
ein char hat (normalerweise) 8 bits, also könnte man alle zahlen zwischen 0 und 255 (einschliesslich) rein packen.
der haken aber ist, dass der halbe wertebereich für negative zahlen reserviert ist, alles mit einem gesetzten bit7 ist negativ.
wenn du machst:char c = 127 + 1;
dann hast du schon einen überlauf. das ergebnis ist nicht 128 sondern wird -128.
mit 'unsigned char' klappt es aber.
-
Als Ergänzung hilft dir vielleicht folgende Tabelle:
http://www.cplusplus.com/doc/tutorial/variables.htmlZu diesen Wertebereich (von signed char) passt dann auch die ASCII Tabelle(0-127!):
http://www.torsten-horn.de/techdocs/ascii.htmIch denke mal (stark), daß das Problem bei Sonderzeichen im PDF auftreten wird, da diese Werte > 127 haben... und wenn du nur ein char (=signed char) hast, dann passen die Sonderzeichen als Integer-Wert eben nicht mehr rein. (char Zeichen werden intern als Integerwerte dargestellt)
Siehe z.B. eine Umlautetabelle hier:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-39326.htmlUnd das mit dem Vorzeichenbit, hatte ich leider in meinen vorherigen Post vergessen. Also musst du mit unsigned deklarieren
-
Gut das hab ich verstanden,
bei welchen Anwendungen sind signed Chars dann überhaupt sinnvoll?weil ich mein es gibt ja keine negativen Sachen in der ASCI tabelle.
-
Dragonslayer schrieb:
Gut das hab ich verstanden,
bei welchen Anwendungen sind signed Chars dann überhaupt sinnvoll?naja, immer dann, wenn negative werte auftauchen können (und dürfen).
insbesondere, wenn sich durch die verwendung von unsigned typen fehler einschleichen können.