Integer en PHP
- Andrés Cruz
Un entero o integer por definición es un número con signo sin parte decimal; la misma regla se aplica en PHP.
Notaciones de los enteros en PHP
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 +) según sea el caso:
- 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: Enteros literales en php
<?php $a = 1234; // número decimal var_dump($a); $a = -123; // un número negativo var_dump($a); $a = 0123; // número octal (equivalente a 83 decimal) var_dump($a); $a = 0x1A; // número hexadecimal (equivalente a 26 decimal) var_dump($a); $a = 0b11; var_dump($a);// número binario (equivalente a 3 en decimal) ?>
Al interpretar el código anterior:
int(1234) int(-123) int(83) int(26) int(3)
Rango de un integer en php (desbordamiento de enteros)
Si PHP encuentra un número fuera de los límites de un integer, se interpretará como un float en vez de un integer.
Ejemplo: Desbordamiento de enteros en sistemas 32-bits en php
<?php $large_number = 2147483647; var_dump($large_number); $large_number = 2147483648; var_dump($large_number); ?>
Al interpretar el código anterior:
int(2147483647) float(2147483648)
Ejemplo: Desbordamiento de enteros en sistemas 64-bits en php
<?php $large_number = 9223372036854775807; var_dump($large_number); $large_number = 9223372036854775808; var_dump($large_number); ?>
Al interpretar el código anterior:
int(9223372036854775807) float(9.2233720368548E+18)
Desarrollo con Laravel, Django, Flask, CodeIgniter, HTML5, CSS3, MySQL, JavaScript, Vue, Android, iOS, Flutter