martes, 6 de noviembre de 2012

Tipos de datos en Objective-C

Los siguientes tipos de datos se consideran variables primitivas en Objective-C. Tienen la propiedad que su almacenamientos es fijo. En este lenguaje, como podrá observar, las cadenas NO se consideran un tipo de dato primitivo, sino un objeto.

int

El tipo de de datos Objective-C  int puede almacenar un número entero positivo o negativo (es decir, un número sin decimales).
El tamaño real o el rango de número entero que puede ser manejado por el tipo de datos int depende  del compilador.
Normalmente, la cantidad de almacenamiento asignado a valores int es de 32-bit o 64-bit dependiendo de la implementación de Objective-C en esa plataforma o la CPU en la que el compilador está ejecutándose.
Es importante señalar, sin embargo, que el sistema operativo también juega un papel en si los valores int son 32 o 64 bits.
Por ejemplo la CPU en una computadora puede ser de 64 bits, pero el sistema operativo que se ejecuta en el mismo sólo puede ser de 32 bits.


Por ejemplo, en una aplicación de 32-bit, el rango máximo de un entero sin signo es de 0 a 4294967295.
En un sistema de 64-bit de este rango sería 0 a 18.446.744.073.709.551.615.
Cuando se trate de valores int con signo (negativos y positivos), los rangos son -2147483648 hasta 2147483647 y -9.223.372.036.854.775.808 a +9.223.372.036.854.775.807 para las implementaciones de 32 bits y 64 bits, respectivamente.
Al escribir un programa Objective-C, la única garantía que tenemos es que un int será por lo menos de 32-bits de ancho.
Para evitar futuros problemas al compilar, el código en otras plataformas es más seguro para limitar valores int para el rango de 32-bit, en lugar de asumir que el 64-bit estará disponible.
De forma predeterminada, los valores int son decimales (es decir, basados ​​en la base número 10).
Para expresar un entero en octal (base número 8) simplemente preceder el número con un cero (0). Por ejemplo:

int miOctal = 024;

De manera similar, un int puede ser expresado en la base 16 (hexadecimal) precediendo el número con 0x, por ejemplo:


int miHex = 0xFFA2;

char

El Objective-C tipo de datos char se utiliza para almacenar un solo carácter, como una letra, número o signo de puntuacion numérico o carácter de espacio.
Por ejemplo, las siguientes líneas asignan una variedad de caracteres  diferentes para las variables de tipo char:

char miChar = 'w';
char miChar = '2';
char miChar = ':';


Caracteres especiales / Secuencias de Escape

Además del conjunto estándar de caracteres descritos anteriormente, también hay una serie de caracteres especiales (también conocido como escapar secuencias) disponible para los artículos que especifican como una nueva línea o un tabulador.
Estos caracteres especiales se identifican anteponiendo el carácter con una barra invertida (un concepto conocido como "escape").
Por ejemplo, el siguiente se asigna una nueva línea a la variable llamada nueva línea:

caracteres de nueva línea = '\ n';

En esencia, cualquier carácter que está precedido por una barra invertida se considera que es un carácter especial y es tratado com o tal por el compilador. Esto plantea la cuestión de saber qué hacer si usted quiere realmente un carácter de barra invertida. Esto se consigue por escapar de la propia barra inversa:

char miBarra = '\\';




Los caracteres especiales soportados por Objective-C son los siguientes:

\ A - El sonido de alerta
\ b - Retroceso
f \ - Avance de página
\ n - Nueva línea
\ r - Retorno de carro
\ t - Tabulador horizontal
\ v - Tabulador vertical
\ \ - Backslash
\ "- Doble comilla (usado cuando se hace una cita doble en una declaración cadena)
\ '- Comilla simple (se utiliza cuando se hace una cita doble en una declaración cadena)



float


El tipo de datos float de Objective-C se utiliza para almacenar los valores de punto flotante, en otras palabras que contengan valores decimales.
Por ejemplo, 456.12 sería almacenado en un tipo de datos float.
En la práctica, todos los valores de coma flotante se almacenan como un tipo de datos diferente (llamado doble) de forma predeterminada.
Vamos a estar cubriendo el tipo de datos double siguiente, pero si usted desea específicamente para utilizar un tipo de datos float, debe anexar una f al final del valor. Por ejemplo:

float miFloar = 123.432f;

Para una mayor comodidad cuando se trabaja con un número excepcionalmente grande de datos, tanto de punto flotante y doble escriba valores pueden ser especificados en notación científica (también conocida como notación exponencial).
Por ejemplo, podemos expresar 67.7 x 104 en Objective-C como:

float miFloat = 67.7e4


double

El tipo de datos double de Objective-C se utiliza para almacenar los valores más grandes que pueden ser manejados por el tipo de datos float.
El término "double" viene del hecho de que un double puede manejar valores de dos veces el tamaño de un float.
Como se mencionó anteriormente, todos los valores de coma flotante se almacenan como tipos de datos dobles a menos que el valor es seguido por un 'f' para especificar específicamente un float en lugar de como un double.

id

En Objective-C gran parte de la forma en que se estructuró un programa está en la forma de los objetos reutilizables.
Estos objetos son llamados a realizar tareas y devolver resultados.
A menudo, la información que se pasa en un objeto y los resultados devueltos serán en la forma de otro objeto.
El tipo de datos id es de propósito general, y se puede utilizar para almacenar una referencia a cualquier objeto, independientemente de su tipo.

BOOL

Objective-C, al igual que otros idiomas, incluye un tipo de datos para manejar resultados verdaderos o falsos (1 o 0).
Este tipo de datos se declaran usando cualquiera de las palabras clave o _Bool BOOL.
Ambas expresiones siguientes son válidas:

_Bool flag = 0;
BOOL secondflag = 1;

En Objetive-C no tenemos las contantes true y false, como en otros lenguajes que provienen del C. En cambio tendremos las contantes YES y NO, respectivamente.

Los calificadores de datos en Objective-C 

Hasta ahora hemos visto los tipos de datos básicos en el contexto del lenguaje de programación Objective-C.
Hemos visto que los tipos de datos son seleccionados dependiendo del datos que deseemos almacenar y del espacio en memoria que deseemos utilizar.
Cada tipo de datos está asociada con algunas restricciones en cuanto a qué tipo de datos puede contener.
De hecho, es posible modificar algunas de estas limitaciones mediante el uso de los calificadores.
Los siguientes calificativos modifican las restricciones de almacenamiento de los tipos de datos que vimos en la parte superior.

long


El calificador long se utiliza para extender el rango de valores de un tipo de datos.
Por ejemplo, para aumentar el alcance de una variable entera, la declaración es prefijado por el calificador:

long int miEnteroLargo;

La cantidad en que se incrementa rango un tipo de datos a través del uso del calificador long depende del sistema operativo, aunque en muchos sistemas modernos int y long tienen el mismo rango, haciendo innecesario el uso del calificador.
El calificador de long también se puede aplicar al tipo de datos double.
Por ejemplo:

long double miDobleLargo;


long long

Los calificadores long long equivalen a extra long.
En el caso de un tipo de datos int, el calificador long long cambia un entero de 32-bit a 64-bit:

long long int miEnteroLargo;

short

El calificador short se puede utilizar para reducir el espacio de almacenamiento y el rango del tipo de datos int.
Esto reduce el número entero a 16-bits de ancho, lo que limita el rango de valores con signo de -32.768 a 32.767:

short int miEnteroCorto;

signed / unsigned

De forma predeterminada, un número entero se supone que contiene el signo, es decir, puede almacenar positivos y negativos.
Esto limita la medida en que el rango puede alcanzar en cualquier dirección.
Por ejemplo, un int 32-bit tiene una gama de 4.294.967.295.
En la práctica, debido a que el valor puede ser positivo o negativo de la gama es en realidad desde -2147483648 hasta 2147483647.
Si sabemos que una variable no serán utilizada para almacenar un valor negativo, podemos declarar como no firmado, ampliando así el rango (positivo) para desde 0 hasta 4294967295.
Un entero sin signo se especifica de la siguiente manera:

unsigned int myint;

Los modificadores pueden ser combinados:

unsigned short int miEntero = 10;

Si usamos los  calificadores unsigned, signed, short y long con el typo de datos entero, La palabra reservada int es opcional. Las siguientes sentencias serían válidas:

short miInt;
long miInt;
unsigned miInt;
signed miInt;

No hay comentarios:

Publicar un comentario