给一个小于10位的正整数以左补0的方式补满10位
1、基本思路:(不能使用str_pad函数)
(1)计算获取该正整数的位数,得到需要左补0的个数。
(2)使用循环的方式左补0
2、具体实现的PHP代码:
<?php
/* Get number's bits */
function get_num_bits($num) {
if ($num >= 1 && $num < 10) {
$bits_len = 1;
} else if ($num >= 10 && $num < 100) {
$bits_len = 2;
} else if ($num >= 100 && $num < 1000) {
$bits_len = 3;
} else if ($num >= 1000 && $num < 10000) {
$bits_len = 4;
} else if ($num >= 10000 && $num < 100000 ) {
$bits_len = 5;
} else if ($num >= 100000 && $num < 1000000) {
$bits_len = 6;
} else if ($num >= 1000000 && $num < 10000000) {
$bits_len = 7;
} else if ($num >= 10000000 && $num < 100000000) {
$bits_len = 8;
} else if ($num >= 100000000 && $num < 1000000000) {
$bits_len = 9;
} else {
$bits_len = 10;
}
return $bits_len;
}
$bits_total = 10;
$num = 2345;
$bits_len = get_num_bits($num);
$pad_len = $bits_total - $bits_len;
echo '$bits_len = ' , $bits_len , "\n";
echo '$pad_len = ' , $pad_len , "\n";
$pad_str = '0';
$num_str = "$num";
# $num_str = $num;
# echo 'type($num_str): ' , gettype($num_str) , "\n";
echo '[1] $num_str = ' , $num_str , "\n";
for($i=0;$i<$pad_len;$i++) {
$num_str = $pad_str . $num_str;
}
echo '[2] $num_str = ' , $num_str , "\n";
echo 'length($num_str): ' , strlen($num_str) , "\n";
?>