Data Storage Formats

This section describes the storage formats of the data types available in C51.  C51 provides you with a number of basic data types to use in your C programs.  The following table lists these data types along with size requirements and value ranges.

Data Type

Bits

Bytes

Value Range

bit

1

0 to 1

signed char

8

1

-128 to +127

unsigned char

8

1

0 to 255

enum

16

2

-32768 to +32767

signed short

16

2

-32768 to +32767

unsigned short

16

2

0 to 65535

signed int

16

2

-32768 to +32767

unsigned int

16

2

0 to 65535

signed long

32

4

-2147483648 to 2147483647

unsigned long

32

4

0 to 4294967295

float

32

4

±1.175494E-38 to ±3.402823E+38

data *,
idata *
,
pdata *

8

1

0x00 to 0xFF

code*,
xdata *

16

2

0x0000 to 0xFFFF

untyped ptr

24

3

Memory type (1 byte) 1 to 5; Offset (2 bytes) 0x0000 to 0xFFFF

Other data types, like structures and unions, may contain scalars from this table. All elements of these data types are allocated sequentially and are byte-aligned due to the 8-bit architecture of the 8051 family.