printf()函数的问题

时间:2010-03-22 01:18:19

标签: php

我有变量$ a = 5;我希望以二进制形式显示它,长度等于8,在白色空格处写*,就像这样,* * * * * 101


这里是脚本

$number = 5;
printf("%*8b", $number); 

它不适用于*,但如果“0”-s可以使用

   printf("%08b", $number);
      //returns 00000101

为什么它不适用于*?

编辑:

我如何应用浮动选项呢?喜欢

`printf("%.4f", $number);` 

    //it returns 5.0000, but i want to return *****101.0000

1 个答案:

答案 0 :(得分:3)

http://www.php.net/manual/en/function.sprintf.php

  

可选的填充说明符   说什么角色将用于   将结果填充到右侧   字符串大小。这可能是一个空间   字符或0(零字符)。该   默认是用空格填充。一个   替代填充字符可以   通过为它添加前缀来指定   单引号(')。查看示例   下方。

所以,使用

printf("%'*8b", $number); 

编辑:

for float try

printf("%'*.4f", $number); 

如果您想要一些更复杂的案例,请阅读http://www.php.net/manual/en/function.sprintf.php