>백엔드 개발 >PHP 튜토리얼 >PHP什么是整数溢出?

PHP什么是整数溢出?

PHPz
PHPz원래의
2016-06-13 11:34:052801검색

PHP什么是整数溢出?

进制和整型

整型值可以使用十进制,十六进制,八进制或二进制表示,前面可以加上可选的符号(- 或者 +)。

注意:要使用八进制表达,数字前必须加上 0。要使用十六进制表达,数字前必须加上 0x。要使用二进制表达,数字前必须加上 0b。

<?php
$a = 1234; // 十进制数
$b = -123; // 负数
$c = 0123; // 八进制数 (等于十进制 83)
$d = 0x1A; // 十六进制数 (等于十进制 26)
?>

整数溢出

如果给定的一个数超出了 integer 的范围,将会被解释为 float。同样如果执行的运算结果超出了 integer 范围,也会返回 float。

对于32位的操作系统,最大的整型是2147483647,即2的31次方,最小为-2的31次方。本次实验环境:PHP 7.2,Ubuntu 14.04。

<?php

$a = 123445566;
$b = 9223372036854775807;
$c = 9223372036854775808;
$d = 50000000000000 * 1000000;

var_dump($a);
var_dump($b);
var_dump($c);
var_dump($d);

执行得到结果为:

int(123445566)
int(9223372036854775807)
float(9.2233720368548E+18)
float(5.0E+19)

更多相关知识,请访问 PHP中文网!!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.