On Wed, 20 Aug 2003, Thorsten Haude wrote:
Moin,
* Daniel Feist
[2003-08-18 10:12]: Normalerweise hat ja char einen Wertebereich zwischen minus 127 und plus 128 - dieser Bereich wird auch 'signed char' gennant. 'char' wird automatisch als 'signed char' betrachtet bzw. 'char' oder 'signed char' ist das gleiche.
Das gilt nur für die anderen Ganzzahlentypen. Der Wertebereich von 'char' ist vom Compilerbauer frei wählbar und kann 'signed char', 'unsigned char' oder wie ich gerade lese eine Mischform sein.
"Mischform?" fragt Ihr Euch jetzt: Type char may be a "pseudo-unsigned" integral type - that is, it can contain only nonnegative values, but it is treated as if it were a signed type when performing the usual unary conversions.
(Samuel P. Harbison, Guy L. Steele: C: A Reference Manual)
Jetzt gibt es aber auch noch eine Möglichkeit, den Wertebereich von char zu erweitern - das geht mit 'unsigned char'.
s/erweitern/verschieben/
Hallo Thorsten,
Genau so ist das - es ist ja so, dass da mit signed und unsigned nicht nur
bei char so ist, sodern auch bei anderen - hier eine kleine Tabelle:
char, signed char 1 Byte == 8 Bit -128 +127
unsigned char 1 Byte == 8 Bit 0 255
short, signed short 2 Byte == 16 Bit -32768 +32767
unsigned short 2 Byte == 16 Bit 0 65535
int, signed int 4 Byte == 32 Bit -2147483648 +2147483648
unsigned int 4 Byte == 32 Bit 0 4294967295
long, signed long 4 Byte == 32 Bit -2147483648 +2147483648
unsigned long 4 Byte == 32 Bit 0 4294967295
Hier ein simples Programmbeispiel:
#include
-- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-programming-unsubscribe@suse.com Um eine Liste aller verfügbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-programming-help@suse.com
Einfach löschen, was Du nicht mehr brauchst.
Thorsten -- It is exactly because markets are amoral that we cannot leave the allocation of resources entirely to them. - George Soros
Gruß, Daniel -- Daniel Feist (clusterix.perl@gmx.de)