进制转化的思路

2018-05-15  本文已影响17人  smallThree1

低进制转化为高进制的思路:

将低进制针对高进制求商取余,重复操作直到商为0.

如下将10进制转化为16进制(6666转化为16进制):

6666除以16,余数为10(A),商为416,

416除以16,余数0(0),商为26,

26除以16,余数为10(A),商为1,

1除以16,余数为1,商为0,结束。

所以6666的16进制为1A0A

使用PHP代码实现如下:

function test($n,$f=16){

    $r = "0123456789AFCDEF";

    $t = [];

    do{       

         $a = $n%$f;

        $n = floor($n/$f);

        $t[] = $a;

    }while($n!=0);

    $len = count($t);

    $target = '';

    for($i=$len-1;$i>=0;$i--){        

    $target .= $r[$t[$i]];

    }   

     return $target;

}

上一篇 下一篇

猜你喜欢

热点阅读