Php printf()函数有问题
我有变量$a=5;我想以二进制形式显示它,长度等于8,在空白处写*,就像这样,像这样*****101Php printf()函数有问题,php,Php,我有变量$a=5;我想以二进制形式显示它,长度等于8,在空白处写*,就像这样,像这样*****101 这是剧本 $number = 5; printf("%*8b", $number); 它不适用于*,但如果是“0”-s,它就可以工作 printf("%08b", $number); //returns 00000101 为什么它不适用于* 编辑: 我怎样才能应用浮动选项呢?像 `printf("%.4f", $number);` //it returns
这是剧本
$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(零字符)。这个
默认设置为用空格填充。一
可以使用替代填充字符
通过在其前面加上
单引号(')。参见示例
下面
所以,使用
printf("%'*8b", $number);
编辑:
试一试
printf("%'*.4f", $number);
如果你想了解一些更复杂的情况,只需阅读@Syom,我没有实际的php经验:)@osgx也许你使用过perl?有许多函数具有相同的语法?是的,我8年前使用过perl:)
printf
取自C,但据我所知,在printf的大多数版本中,使用替换字符(不是空格或零)填充是不受支持的。(只有php有“一个超级修改,允许您仅使用1个额外字符”或“甚至这个非常罕见的垃圾拼音函数在核心php中”)。在perl中,可以使用“格式”格式化输出,而不仅仅是使用printf。格式允许进行不同的填充,但它们面向可打印的纯文本,而不是html。关于编辑-是否要获取浮点的二进制表示形式?printf(“%'*8b.00000”,$number)代码>将适用于ints。对于浮点和二进制输出,就我所知,即使是PHP也没有内置的解决方案。