printf () fonksiyonu ile sorun

1 Cevap

i = 5 değişken $ a var; i uzunluğu ile, ikili formda göstermek istiyorum, eşit 8, yazma * boşluklarla de, tıpkı bu şekilde, böyle ***** 101


Burada komut

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

o * ile çalışmıyor, ama "0"-s eğer çalışıyor

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

neden * ile çalışmıyor?

EDIT:

ve nasıl ben de yüzer seçeneği uygulayabilirsiniz? gibi

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

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

1 Cevap

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.

Böylece, kullanımı

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

EDIT:

şamandıra deneyin için

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

Biraz daha karmaşık vakaları ve isterseniz, sadece okumak http://www.php.net/manual/en/function.sprintf.php