PHP中二进制文件的前缀是什么?

时间:2010-03-24 11:30:00

标签: php syntax binary

既不是0x也不是0;它是什么?有吗?

4 个答案:

答案 0 :(得分:48)

New in PHP 5.4是二进制前缀0b。考虑使用它时的可移植性;你需要能够保证服务器运行PHP 5.4 +。

答案 1 :(得分:44)

自PHP 5.4+起,二进制数的前缀为:

0b

<小时/> 对于早期版本,没有这样的前缀。相反,您可以使用0x表示十六进制。

有关更多信息,请参阅 Integers section of the PHP manual

但是,如果你确实需要在PHP 5.4之前使用二进制写值,你可以使用bindec函数,该函数接受包含二进制的字符串,并返回相应的值。

例如,以下代码部分:

echo bindec('10011');

会得到你:

19

但是请注意,你不应该经常这样做:每次执行脚本时调用一个函数都是非常糟糕的表现^^
相反,使用十六进制编写值是一个更好的解决方案,其中每个数字代码为4位。

答案 2 :(得分:2)

从PHP 5.4+开始,实际上有一个前缀:0b

PHP Docs中的当前信息:

  

自PHP 5.4.0起可以使用二进制整数文字。

     

要使用八进制表示法,请在数字前面加上0(零)。要使用十六进制表示法,请在数字前面加上0x。要使用二进制表示法,请在数字前加上0b。


2010年3月24日11:31(原始答案):

我认为没有。前缀0如果是八进制,0x是十六进制。

来自PHP docs

  

整数可以用十进制(基数10),十六进制(基数16)或八进制(基数8)表示法指定,可选地以符号( - 或+)开头。

     

要使用八进制表示法,请在数字前面加上0(零)。要使用十六进制表示法,请在数字前面加上0x。

答案 3 :(得分:1)

检查the manual:PHP仅支持十进制,十六进制和八进制整数表示法,但您可以使用bindec()代替。

另外,请记住,每个十六进制数字代表4位,因此很容易在二进制表示法和十六进制之间进行转换。八进制也是如此,但由于各种原因,它在实践中使用较少。