PHP整数基数10

时间:2017-11-20 05:57:09

标签: php int

PHP手册说整数可以用十进制(基数10),十六进制(基数16),八进制(基数8)或二进制(基数2)表示,可选地以符号( - 或+)开头。

表示整数可以是十进制,十六进制,八进制和二进制。

如果我echo 014;首先转换为基数10并输出给12那么简单。

为什么它自动转换为base 10,但另一方面手册说整数也可以用八进制指定。

也看一下类型转换的例子var_dump((int) 014)它输出int 12。这次它转换为基数10,但是手动说八进制本身也是一个整数。

问题在于手动语言。它应该说类型转换为整数意味着(int)十进制整数转换,而不是说它会将其转换为整数整数和十进制整数之间存在差异。

1 个答案:

答案 0 :(得分:2)

>表示整数可以是十进制,十六进制,八进制和二进制。

不,这意味着程序员可以用十进制,八进制或二进制指定整数。你必须明白,在封面下,计算机只处理二进制,因此表达十进制,十六进制,八进制或二进制数字的能力就是程序员的便利。它对计算机没有任何影响,因为它只看到二进制文件。

您输入 014 =>计算机看到 00001100

您输入 12 =>计算机看到 00001100

您输入 0xc =>计算机看到 00001100

计算机无法区分不同格式。

>为什么它自动转换为基数10,但另一方面手册说整数也可以用八进制指定。

因为如果你检查PHP documentation for echo,你会发现它只接受一个字符串参数。如果你传递其他类型,它必须想办法隐式地将它们转换为字符串。依赖隐式类型转换不是一个好主意,你会遇到像你遇到的问题。尝试始终明确施放。例如,如果要将十进制数回显为十六进制,请执行以下操作:

echo(dechex(1234));