既不是0x
也不是0
;它是什么?有吗?
答案 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位,因此很容易在二进制表示法和十六进制之间进行转换。八进制也是如此,但由于各种原因,它在实践中使用较少。