2017-06-15 35 views
0

我知道該怎麼做,只是用如何在PHP中零填充從十進制轉換爲16位二進制數的數字?

str_pad(decbin($number),16,"0",STR_PAD_LEFT) 

然而,似乎使用

printf("blah",$number) 

應該更快地做到這一點,但我不知道什麼「嗒嗒」格式化字符有成爲。因爲這將需要數百萬次,所以加速是有用的。 我發現的唯一例子是使用「%08b」將zero-pad轉換爲8位十進制數轉換爲二進制。 並且不,「%016b」不起作用。所有其他示例都避免超出8位。 PHP.NET手冊對我來說簡直就是胡言亂語。

回答

0

對我來說%016b確實工作:

<?php 
$number = decbin(11); 
printf("%016b",$number); 

我得到的輸出是:

0000001111110011 

這是一個x86-64的Linux系統上的PHP 7.0.18。

+0

二進制0000001111110011是1011小數,所以你的結果是不正確的。 – Petoetje59

+0

好吧,如果這是你的平臺的限制,那麼'strpad()'選項聽起來很棒。 – arkascha

相關問題