2-й вопрос - вот такие у него типы Data Types Bits Bytes Value Range
bit† 1 0 to 1
signed char 8 1 -128 to +127
unsigned char 8 1 0 to 255
enum 8 / 16 1 or 2 -128 to +127 or –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
sbit† 1 0 or 1
sfr† 8 1 0 to 255
sfr16† 16 2 0 to 65535
† The bit, sbit, sfr, and sfr16 data types are not provided in ANSI C and are unique to the Cx51 compiler. These data types are described in detail in the following sections.