我有变量$ 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
答案 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