Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

problem with printf() function

Tags:

php

i have the variable $a = 5; i want to show it in binary form, with length, equal 8, with writing * at white spaces, just like this, like this * * * * *101


here the script

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

it doesn't work with *, but if "0"-s it works

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

why it doesn't work with *?

EDIT:

and how can i apply the floating option too? like

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

    //it returns 5.0000, but i want to return *****101.0000
like image 851
Simon Avatar asked Feb 14 '26 09:02

Simon


1 Answers

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

An optional padding specifier that says what character will be used for padding the results to the right string size. This may be a space character or a 0 (zero character). The default is to pad with spaces. An alternate padding character can be specified by prefixing it with a single quote ('). See the examples below.

So, use

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

EDIT:

for float try

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

and if you want some more complicated cases, just read http://www.php.net/manual/en/function.sprintf.php

like image 167
osgx Avatar answered Feb 17 '26 00:02

osgx



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!