Data Types

A data type is a way to store and manipulate data using variables. There are two types of programming languages based on data types:

  1. Weakly Typed

In weakly typed languages like Python, JavaScript, Perl etc. same variable can store different data types. You don’t need to specify the data type of a variable.

💡
These languages are also called dynamically typed languages.
 var a = 3;
 a = "Adam";
  1. Strongly Typed

In strongly typed languages like C++, C#, Java, TypeScript etc. you have to specify the data type of a variable e.g., you can’t store a char in an integer variable.

 int a = 13;
 a = "Adam"; ❌

Categories of Data Types

Data types can be classified as built-in and user-defined data types as well as some other categories.

  1. Built-in data types

int

Integer type used to store numbers e.g., 0, ±1, ±2 . . .

float

for floating-point values e.g., 3.8, 3.14 etc.

double

also for floating-point values but with more precision.

char

Character type used to store alphabets, symbols etc.

bool

Boolean type for true & false.

signed

can store both +ve and -ve integers e.g., ±1, ±2 etc.

unsigned

can only store positive integers e.g., 1, 2, 3 . . .

  1. User-defined types

class

a data type to encapsulate multiple data members and functions, blueprint for creating objects.

structure

to define a custom data type that holds multiple variables of different types.

  1. Derived data types

array

collection of elements on the same data type

pointer

used to store the memory address of another variable

💡
Some others are tuple, pair, auto, enum, union, reference etc.
  1. Modifier data types

long

increases the range of values that an integer can hold.

short

decreases the range of values that an integer can hold.

long long

further increases the range of values that an integer variable can hold beyond what long provides.

Memory Occupation

You can find memory occupied by a data type using sizeof( ) function in C++.

 

BYTES

 

BYTES

int

4

long int

4

float

4

long long int

8

char

1

short

2

double

8

bool

1

long double

12

 

 

Limitations of Data Types

Each data type has some limitations according to memory e.g., in the case of an integer, it can only store 231-1 values.

💡
In 231-1, we subtract one value to include 0.
  • The size of int is 4 bytes i.e., 4 * 8 = 32 bits. So, using 32 bits we can represent 231 values and 1 bit is for signed values i.e., + or -.

  • The formula to calculate the number of values that can be represented by 'n' bits is 2n.

bits

values

1

2

2

4

4

16

8

256

16

65,536

32

4,294,967,296

31

2,147,483,648

So, 32 bits can represent 4,294,967,296 values but a simple integer also stores negative values, so we can store ±2,147,483,647 (231-1).

💡
You can increase the range using unsigned int, long or long long int.
  • Other data types also have some limitations, try to Google that stuff.