1. Index
  2. Shell
  3. C
  4. POSIX
  5. JavaScript

Ganzzahl-Arithmetik

Der Datentyp Integer repräsentiert eine Teilmenge der Ganzen Zahlen.

limits.h

Minima und Maxima der eingebauten Ganzzahltypen hängen von der Architektur des Prozessors ab. Auf 32-Bit Architekturen deckt der Typ int typischerweise 4 Milliarden Werte und Zeiger einen Adressraum von 4 Gigabyte ab. Die angegebenen Zahlen markieren das garantierte Minimum.

#define MB_LEN_MAX 4 Oktette pro Multibyte Zeichen
#define MB_CUR_MAX 4 Dito in der aktuellen Sprache
#define CHAR_BIT 8 Immer 8 Bit
#define CHAR_MIN -128
#define CHAR_MAX 127
#define SCHAR_MIN -128
#define SCHAR_MAX 127
#define UCHAR_MAX 255
#define SHRT_MIN -32768 Mindestens 16 Bit
#define SHRT_MAX 32767
#define USHRT_MAX 65535
#define INT_MIN -32768 Mindestens 16 Bit
#define INT_MAX 32767
#define UINT_MAX 65535 64 Kilobyte
#define LONG_MIN -2147483648
#define LONG_MAX 2147483647
#define ULONG_MAX 4294967295 4 Gigabyte (109)
#define LLONG_MIN -9223372036854775808 Mindestens 64 Bit
#define LLONG_MAX 9223372036854775807
#define ULLONG_MAX 18446744073709551615 16 Exabyte (1018)

stdint.h

Weil die tatsächliche Größe der eingebauten Ganzzahltypen von der Architektur des Prozessors und dem verwendeten Übersetzer abhängen, verwendet man möglichst sinnvolle Aliase, die eine Mindestgröße für bestimmte Zwecke garantieren.

#define SIZE_MAX Maximale Größe von Arrays
#define RSIZE_MAX Maximale Größe von Arrays mit Bereichsprüfung
#define PTRDIFF_MIN/MAX Maximale Entfernung von Zeigern
#define SIG_ATOMIC_MIN/MAX
#define WCHAR_MIN/MAX
#define WINT_MIN/MAX
#define INT8_MIN -128
#define INT8_MAX 127
typedef [u]int8_t char 8 Bit, 1 Oktett
typedef [u]int16_t short int 16 Bit, 2 Oktette, Wort
typedef [u]int32_t long int 32 Bit, 4 Oktette, Quad, Doppelwort
typedef [u]int64_t long long int 64 Bit, 8 Oktette, Octa, Quadrupelwort
typedef [u]intmin_t char Kleinster Ganzzahltyp
typedef [u]intmax_t long long int Größter Ganzzahltyp

stdlib.h

Parser für die Umwandlung von Zeichenketten in Ganz- und Gleitpunktzahlen.

double atof (const char * nptr)
int atoi (const char * nptr)
long atol (const char * nptr)
long long atoll (const char * nptr)
double strtod (const char * nptr, char ** endptr)
float strtof (const char * nptr, char ** endptr)
long double strtold (const char * nptr, char ** endptr)
long strtol (const char * nptr, char ** endptr, int base)
long long strtoll (const char * nptr, char ** endptr, int base)
unsigned long strtoul (const char * nptr, char ** endptr, int base)
unsigned long long strtoull (const char * nptr, char ** endptr, int base)
long a64l (const char * s) Radix-64
char * l64a (long value) Radix-64

Ganzzahl-Arithmetik

int abs (int j) Absolutwert
long int labs (long j)
long long int llabs (long long j)
typedef struct div_t
int quot Quotient
int rem Rest
div_t div (int numerator, int denominator) Division
ldiv_t ldiv (long numerator, long denominator) mit Rest
lldiv_t lldiv (long long numerator, long long denominator)

inttypes.h

Parser mit Prüfung.

intmax_t strtoimax (const char * nptr, char ** endptr, int base)
uintmax_t strtoumax (const char * nptr, char ** endptr, int base)
intmax_t wcstoimax (const wchar_t * nptr, wchar_t ** endptr, int base)
uintmax_t wcstoumax (const wchar_t * nptr, wchar_t ** endptr, int base)

Absolutwert und Division mit Rest

intmax_t imaxabs (intmax_t n) Absolutwert
typedef imaxdiv_t
long int quot
long int rem
imaxdiv_t imaxdiv (intmax_t numererator, intmax_t denominator) Division mit Rest