Was sind vorzeichenbehaftete Ganzzahlen in C++?

4 Antworten

Mit Ausnahme von bool, char und einigen weiteren wie wchar_t kommen die "normalen" Integer-Typen in zwei Geschmacksrichtungen als signed- und unsigned-Version daher.

Eine Ganzzahl ist eine Zahl ohne Nachkommastellen und diese gibt es entweder ausschließlich im positiven Bereich zwischen 0 und einem Grenzwert oder als "vorzeichenbehafteten Typ", womit auch negative Zahlen dargestellt werden können.

unsigned int, unsigned long, unsigned short oder unsigned char sind vorzeichenlose Ganzzahltypen. Du kannst damit keine Zahlen kleiner als Null darstellen.

signed int, signed long, signed short und signed char hingegen können auch problemlos negative Zahlen darstellen.

LG, Sophie <3

Woher ich das weiß:Recherche

Ganz normale int

Woher ich das weiß:Studium / Ausbildung – Mathematik

sebastianla  09.07.2018, 13:31

Und long. Und signed char.

1
Bobdodo 
Fragesteller
 09.07.2018, 13:37

Aber das Wort Vorzeichenbehaftet irritiert mich irgendwie, weil das heißt doch eigentlich das irgendwas vor einer Zahl stehen muss, wie z.B ein Minus oder ein Plus oder ?

1
Suboptimierer  09.07.2018, 13:38
@Bobdodo

Ja richtig. In der Informatik zählt die 0 auch als vorzeichenbehaftet. Manchmal gibt es sogar zwei Repräsentanten, also +0 und -0, wenn das Vorzeichenbit entsprechend gesetzt ist.

Falls du darauf hinaus willst, dass dann alle Zahlen vorzeichenbehaftet sein müssten: Ja, du hast theoretisch recht. Also auch unsigned int Zahlen haben ein Vorzeichen, nämlich +, nur wird sprachlich das als nichtvorzeichenbehaftet in dem Bereich definiert.

0

char, short, int, long

  • Wertebereich( char = 1 Byte ): -128..127
  • Wertebereich( short = 2 Bytes ): -32768..32767
  • Wertebereich( int = 3 Bytes ): -2147483648..2147483647
  • Wertebereich( char = 4 Bytes ): -9223372036854775808..9223372036854775807

Alles, ohne Float und Double und als Signed.