1.2.1 Constantes enteras

Todos estos se encuentran en el rango de los enteros,  desde -∞ hasta ∞). Por lógica compuestos todos estos por los signos (-) y (+) seguidos a su vez por los números naturales.

 

Estas son permitidas en el lenguaje C con la capacidad de poder especificar un número entero como por ejemplo el 7, 8, 14, etc.

 

El tipo entero en un subconjunto finito de los números enteros. Los cuales enteros son números completos, no tienen componentes fraccionarios o decimales y pueden ser negativos o positivos. Los enteros se denominan en ocasiones número de punto o coma fijo.

Las constantes enteras son números sin parte fraccionaria y pueden ser tanto negativos como positivos. Las constantes enteras se puede expresar de las siguientes formas:

 

Decimal. Una constante entera decimal es de base 10, esto es, utiliza cifras del 0 al 9 pero no pueden empezar por 0, a excepción de este mismo.

 

Octal. Una constante entera octal es de base 8, utiliza cifras del o al 7, y tienen como primer dígito al cero.  

 

Hexadecimal. Una constante entera hexadecimal comienza por 0x ó 0X, son de base 16 debido a que incluye dígitos del 0 al 9 y de letras de la A a la F.

Las constantes enteras representan un int, y pueden estar expresadas en los sistemas de numeración decimal octal o hexadecimal.  En ausencia de ningún sufijo, el tipo de una constante entera se deduce de su valor según se muestra en las tablas que siguen. Observe que las reglas para las constantes decimales son distintas del resto.

Decimal Se permiten constantes enteras en formato decimal dentro del rango 0 a 4,294,967,295; las que excedan este límite serán truncadas.  Observe que las constantes decimales no pueden comenzar con cero, porque serían interpretadas como octales.

int i=10;// decimal 10

int i=010;// decimal 8 (octal 10)

int i=0; // decimal 0 = octal 0

Tipos adoptados por las constantes decimales en función del valor declarado (en ausencia de sufijos L o U)

Aquí, cuando la constante sea positiva, el signo es opcional, pero en cambio, al ser negativa, lleva implícita un signo -. 1El tipo de una constante entera viene determinado por su valor. Los enteros también se indican por medio de sufijos L, U, o UL. El primero indica su tipo long, el segundo indica tipo unsigned int cuando el valor puede ser representado por este tipo. Finalmente, el último indica que es de tipo unsigned long.

0                    a 32,767             int

32,768            a 2,147,483,647  long

2,147,483,648 a 4,294,967,295  unsigned long

>4294967295                            truncado

 Octal

Todas las constantes que empiecen por cero se suponen en octal.  Si una constante de este tipo contiene dígitos ilegales (8 o 9), se produce un mensaje de error; como se indica en la tabla adjunta, las que exceden del valor máximo 037777777777 son truncadas.

 

Tipos adoptados por las constantes Octales en función del valor declarado (en ausencia de sufijos L o U).

00                    a 077777             int

010000             a 0177777           unsigned int

02000000         a  017777777777   long

020000000000  a  037777777777   unsigned long

> 037777777777                           truncado

 Hexadecimal

Cualquier constante que comience por 0x o 0X es considerada hexadecimal, base 16, después se pueden incluir los dígitos válidos (0...9, a...f, A...F).  Como se indica e el cuadro adjunto, las que excedan del valor máximo 0xFFFFFFFF son truncadas.

Tipos adoptados por las constantes hexadecimales en función del valor declarado (en ausencia de sufijos L o U).

0x0000          a 0x7FFF         int

0x8000          a 0xFFFF        unsigned int

0x10000        a 0x7FFFFFFF  long

0x80000000   a 0xFFFFFFFF unsigned long

>0xFFFFFFFF                     truncado

Ejemplo:

long lg1 = 0xFFFF; lg2 = 0xFF;

cout << lg1 << endl; // -> 65535

cout << lg2 << endl; // -> 255

#define CS_VREDRAW 0x0001

#define CS_HREDRAW 0x0002

 

 

 

Ejemplos:

 

135U              constante entera tipo unsigned int

3359L            constante entera tipo long

843UL            constante entera tipo unsigned long

 

Por otra parte, las constantes decimales pueden tener uno o más dígitos, de 0 a 9, de los cuales el primero es distinto de cero.

 

Ejemplo:

 

2353                          constante entera tipo int

343540                      constante entera tipo long

 

3Aparte de constantes enteras tipo 234 y en coma flotante de la forma 10.4, a veces, sobre todo al trabajar a bajo nivel, resulta más cómodo poder introducir la constante en base 8 (octal) o 16 (hexadecimal) que en base 10.

 

Además, una constante octal puede tener 1 o más dígitos, 0 a 7, precedidos

por 0. Y su valor está comprendido en el rango:

 

0 a 077777                                                   para constantes tipo int

0100000 a 0177777                                   para constantes tipo unsigned int

0200000 a 017777777777                                   para constantes tipo long

020000000000 a 037777777777            para constantes tipo unsigned long

 

Una constante hexadecimal puede tener 1 o más caracteres, 0 a 9 y A a F, precedidos por 0x o 0X (cero más x). Su valor está comprendido en el rango:

 

0x0 a 0x7FFF                                   para constantes tipo long

0x8000 a 0xFFF                              para constantes tipo unsigned int

0x10000 a 0x7FFFFFFF                para constantes tipo long

0x80000000 a 0xFFFFFFF           para constantes tipo unsigned long

 

Ejemplo:

 

256                 especifica el no. 256 en decimal

-0400             especifica el no. –256 en octal

0x100             especifica el no. 256 en hexadecimal