10-16
<?PHP
function dec2hex($str){
$hex = array('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');
$hexval = '';
$quotient = $str;
$divisor = $str;
$flag = true;
while($flag)
{
$len = strlen($divisor);
$pos = 1;
$quotient = 0;
$div = substr($divisor, 0, 2);
$remainder = $div[0];
while($pos < $len)
{
$div = $remainder == 0 ? $divisor[$pos] : $remainder.$divisor[$pos];
$remainder = $div % 16;
$quotient = $quotient.floor($div/16);
$pos++;
}
$quotient = trim_left_zeros($quotient);
$divisor = "$quotient";
$hexval = $hex[$remainder].$hexval;
if (strlen($divisor)<=2)
if ($divisor<15)
{
$flag = false;
}
}
$hexval = $hex[$quotient].$hexval;
$hexval = trim_left_zeros($hexval);
return $hexval;
}
function trim_left_zeros($str)
$str = ltrim($str, '0');
if (empty($str))
$str = '0';
return $str;
$hex = dec2hex('10153302696068');
if($hex%2!=0) $hex = '0'. $hex;
$str = str_split($hex,2);
$out = '';
for($i=0;$i<count($str);$i++)
$out = '\x' . $str[$i] . $out;
$out = $out.'\x00\00';
echo $out;
?>
16-10
<?PHP function convBase($numberInput,$fromBaseInput,$toBaseInput) { if ($fromBaseInput==$toBaseInput) return $numberInput; $fromBase = str_split($fromBaseInput,1); $toBase = str_split($toBaseInput,1); $number = str_split($numberInput,1); $fromLen=strlen($fromBaseInput); $toLen=strlen($toBaseInput); $numberLen=strlen($numberInput); $retval=''; if ($toBaseInput == '0123456789') { $retval=0; for ($i = 1;$i <= $numberLen; $i++) $retval = bcadd($retval,bcmul(array_search($number[$i-1],$fromBase),bcpow($fromLen,$numberLen-$i))); return $retval; } if ($fromBaseInput != '0123456789') $base10=convBase($numberInput,'0123456789'); else $base10 = $numberInput; if ($base10<strlen($toBaseInput)) return $toBase[$base10]; while($base10 != '0') { $retval = $toBase[bcmod($base10,$toLen)].$retval; $base10 = bcdiv($base10,$toLen,0); } return $retval; } $btime = microtime(true); echo convBase('c4ca4238a0b923820dcc509a6f75849b','0123456789abcdef','0123456789'); echo microtime(true) - $btime; ?>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。