JTagua

Inicio » PHP » Tipos escalares » integer » Tutorial PHP(6): tipo integer

Tutorial PHP(6): tipo integer


Enteros.

Un entero o integer es un número del conjunto ℤ = {…, -2, -1, 0, 1, 2, …}.

Los integer pueden ser especificados mediante notación decimal (base 10), hexadecimal (base 16), octal (base 8) o binaria (base 2), opcionalmente precedidos por un signo (- o +).

Los literales integer binarios están disponibles desde PHP 5.4.0.

Para usar la notación octal, se antepone al número un 0 (cero).

Para usar la notación hexadecimal, se antepone al número un 0x.

Para usar la notación binaria, se antepone al número un 0b.

Ejemplo 1 Enteros literales.

<?php
$a = 1234; // número decimal
$a = -123; // un número negativo
$a = 0123; // número octal (equivalente a 83 decimal)
$a = 0x1A; // número hexadecimal (equivalente a 26 decimal)
$a = 0b11111111; // número binario (equivalente al 255 decimal)
?>
El tamaño de un integer depende de la plataforma, aunque un valor máximo de aproximadamente dos mil millones es el valor usual (para 32 bits con signo). Las plataformas de 64-bits normalmente tienen un valor máximo de aproximadamente 9E18. PHP no admite integers sin signo. El tamaño de un integer puede ser determinado mediante la constante PHP_INT_SIZE y el valor máximo mediante la constante PHP_INT_MAX desde PHP 4.4.0 y PHP 5.0.5.

Desbordamiento de enteros.

Si PHP encuentra un número fuera de los límites de un integer, se interpretará como un float (coma flotante) en su lugar. Tambien, una operación cuyo resultado es un número fuera de los límites de un integer devolverá en su lugar un float.

División entera.

No existe operador de división de integer en PHP. 1/2produce el float 0.5. El valor puede ser forzado a ser un integer redondeando por defecto, o mediante la función round() que permite un mayor control sobre el redondeo.

<?php
var_dump(25/7);         // float(3.5714285714286)
var_dump((int) (25/7)); // int(3)
var_dump(round(25/7));  // float(4)
?>

Conversión a enteros.

Para convertir explicitamente un valor a integer, se puede emplear tanto (int) como (integer). Sin embargo, la mayoría de las veces la conversión no es necesaria, ya que un valor es convertido de forma automática cuando un operador, función o estructura de control necesite un argumento del tipo integer. Un valor tambien puede ser convertido a integer mediante la función intval().

Desde booleanos.

FALSE produce 0 (cero), y TRUE produce 1 (uno).

Desde números de punto flotante.

Cuando se convierte de un float a un integer, el número será redondeado hacia cero.

Si el float esta por debajo de los límites de un integer (normalmente +/- 2.15e+9 = 2^31 en plataformas de 32 bits y +/- 9.22e+18 = 2^63 en plataformas de 64 bits), el resultado es indefinido, debido a que float no tiene la precisión suficiente para ofrecer el resultado como un integer exacto. No se mostrará ninguna advertencia, ni siquiera un aviso cuando esto ocurre!


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: