# SCALAR TYPES

## Boolean

``````bool a = true;
bool b = 0;
bool c = bool(1.0);``````

A scalar type that can hold the logical values of either true or false. The values are represented by the constant integer values 1 and 0. Implicit and explicit type conversions are supported.

## Character

``````char a = 42;
char b = 3.1415;
char c = char(true);``````

A signed integer scalar type with a length of 8 bit. Implicit and explicit type conversions are supported.

## Unsigned character

``````uchar a = 42;
uchar b = 3.1415;
uchar c = uchar(true);``````

An unsigned integer scalar type with a length of 8 bit. Implicit and explicit type conversions are supported.

## Short

``````short a = 42;
short b = 3.1415;
short c = short(true);``````

A signed integer scalar type with a length of 16 bit. Implicit and explicit type conversions are supported.

## Unsigned short

``````ushort a = 42;
ushort b = 3.1415;
ushort c = ushort(true);``````

An unsigned integer scalar type with a length of 16 bit. Implicit and explicit type conversions are supported.

## Integer

``````int a = 42;
int b = 3.1415;
int d = int(true);``````

A signed integer scalar type with a length of 32 bit. Implicit and explicit type conversions are supported.

## Unsigned integer

``````uint a = 42;
uint b = 3.1415;
uint c = uint(true);``````

An unsigned integer scalar type with a length of 32 bit. Implicit and explicit type conversions are supported.

## Long

``````long a = 42;
long b = 3.1415;
long d = long(true);``````

A signed integer scalar type with a length of 64 bit. Implicit and explicit type conversions are supported.

## Unsigned long

``````ulong a = 42;
ulong b = 3.1415;
ulong c = ulong(true);``````

An unsigned integer scalar type with a length of 64 bit. Implicit and explicit type conversions are supported.

## Size of

``size_t s = sizeof(aFloat4);``

An unsigned integer scalar type with a length of 64 bit that is the return value of the sizeof operator. Implicit and explicit type conversions are supported.

## Pointer difference

``ptrdiff_t d = p1 - p0;``

A signed integer scalar type with a length of 64 bit that is the result of substracting one pointer from another.

## Half precision floating point scalar

``````half a = 1.0;
half b = true;
half c = half(1);``````

A half precision floating point scalar type. Implicit and explicit type conversions are supported.

## Floating point scalar

``````float a = 1.0;
float b = true;
float c = float(1);``````

A single precision floating point scalar type. Implicit and explicit type conversions are supported.

## Void

``void func();``

A data type that does not represent a value.