博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
大数 进制转换 10-16
阅读量:7112 次
发布时间:2019-06-28

本文共 2086 字,大约阅读时间需要 6 分钟。

  hot3.png

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, $fromBaseInput, '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;
?>

转载于:https://my.oschina.net/kear/blog/132497

你可能感兴趣的文章
陶哲轩实分析定理17.3.8(一)
查看>>
使用iostat分析IO性能
查看>>
left top right bottom问题
查看>>
android内存优化之图片压缩和缓存
查看>>
python中super与成员属性
查看>>
mysql 分库分表 ~ 方案选择浅谈
查看>>
回头再学Asp.net系列--基础篇(五)
查看>>
Linux 小知识翻译 - 「内核(kernel)」
查看>>
P3758 [TJOI2017]可乐
查看>>
动画--easeljs中的movieClip控件示例?
查看>>
细说浏览器特性检测(1)-jQuery1.4添加部分
查看>>
C errno是否是线程安全的
查看>>
类的初始化
查看>>
百度AI开放平台 UNIT平台开发在线客服 借助百度的人工智能如何开发一个在线客服系统...
查看>>
TensorFlow学习笔记(二)深层神经网络
查看>>
mysql 分组取每个组的前几名的问题
查看>>
JQuery拖拽插件
查看>>
Python虚拟环境和包管理工具Pipenv的使用详解--看完这一篇就够了
查看>>
IOS 基础-define、const、extern、全局变量
查看>>
禁止复制文字,下载图片的方法
查看>>