您好,我想知道以下输出:
<?php
echo 0500; // Output: 320
echo "<br>";
echo 500; //Output: 500
?>
对此有什么小解释?
答案 0 :(得分:6)
PHP将任何以0
(零)开头的整数呈现为八进制(基数为8)的整数。但是,如果你echo
,它将获得其十进制值。 PHP手册中的Integers页面显示:
整数可以用十进制(基数10),十六进制(基数16),八进制(基数8)或二进制(基数2)表示,可选地以符号( - 或+)开头。
自PHP 5.4.0起可以使用二进制整数文字。
要使用八进制表示法,请在数字前面加上0(零)。要使用十六进制表示法,请在数字前面加上0x。要使用二进制表示法,请在数字前加上0b。
更新:它可能是也可能不是一个甜蜜的公式,但维基百科推荐这个用于八进制到十进制转换:
在此公式中, a i 是要转换的单个八进制数字,其中 i 是数字的位置(从0开始计算)对于最右边的数字。)
让我们将3736 8 转换为十进制:
3736 8 =(3×8 3 )+(7×8 2 )+(3×8 1 < / sup>)+(6×8 0 )= 1536 + 448 + 24 + 6 = 2014 10