Skip to content

D) Basic memory

kalinosia edited this page May 20, 2022 · 3 revisions

Memory

1 bit to dwie opcje: 0 lub 1 - jest lub nie ma

1 bajt to 8 bitów, czyli 2 do potęgi 8

2^8 = 256

sizeof(char) = 1, czyli 1 bajt = 8 bitów = -128 do 128

sizeof(int) = 4 = sizeof(long) = sizeof(float)

sizeof(long long) = 8 = sizeof(double)

sizeof(long double) = 12

sizeof( POINTER ) = 8 {sizeof(int*)=sizeof(char*)=sizeof(string*) on a 64-bit machine !!! on 32 -> 4

https://en.cppreference.com/w/cpp/language/sizeof


Advance

Character types

  • char Exactly one byte in size. At least 8 bits.
  • char16_t Not smaller than char. At least 16 bits.
  • char32_t Not smaller than char16_t. At least 32 bits.
  • wchar_t Can represent the largest supported character set.

Integer types (signed)

  • signed char Same size as char. At least 8 bits.
  • signed short int Not smaller than char. At least 16 bits.
  • signed int Not smaller than short. At least 16 bits.
  • signed long int Not smaller than int. At least 32 bits.
  • signed long long int Not smaller than long. At least 64 bits.

Integer types (unsigned)

  • unsigned char (same size as their signed counterparts)
  • unsigned short int -||-
  • unsigned int -||-
  • unsigned long int -||-
  • unsigned long long int -||-

Floating-point types

  • float
  • double Precision not less than float
  • long double Precision not less than double

int 4 signed -2,147,483,648 to 2,147,483,647
unsigned int 4 unsigned 0 to 4,294,967,295
__int8 1 char -128 to 127
unsigned __int8 1 unsigned char 0 to 255
__int16 2 short, short int, signed short int -32,768 to 32,767
unsigned __int16 2 unsigned short, unsigned short int 0 to 65,535
__int32 4 signed, signed int, int -2,147,483,648 to 2,147,483,647
unsigned __int32 4 unsigned, unsigned int 0 to 4,294,967,295
__int64 8 long long, signed long long -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807
unsigned __int64 8 unsigned long long 0 to 18,446,744,073,709,551,615
bool 1 none false or true
char 1 none -128 to 127 by default 0 to 255 when compiled by using /J
signed char 1 none -128 to 127
unsigned char 1 none 0 to 255
short 2 short int, signed short int -32,768 to 32,767
unsigned short 2 unsigned short int 0 to 65,535
long 4 long int, signed long int -2,147,483,648 to 2,147,483,647
unsigned long 4 unsigned long int 0 to 4,294,967,295
long long 8 none (but equivalent to __int64) -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807
unsigned long long 8 none (but equivalent to unsigned __int64) 0 to 18,446,744,073,709,551,615
enum varies none  
float 4 none 3.4E +/- 38 (7 digits)
double 8 none 1.7E +/- 308 (15 digits)
long double same as double none Same as double
wchar_t 2 __wchar_t 0 to 65,535

Clone this wiki locally