给一个小于10位的正整数以左补0的方式补满10位

给一个小于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";
?>




版权声明:本文为lcy4599原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。