Heim > Backend-Entwicklung > PHP-Tutorial > php 十六进制转化为二进制的代码

php 十六进制转化为二进制的代码

WBOY
Freigeben: 2016-07-25 08:57:57
Original
1390 Leute haben es durchsucht
  1. var_dump(decto_bin(array(128,253),2));

  2. var_dump(decto_bin(array(128,253),8));
  3. var_dump(decto_bin(array(128,253),16));
  4. X-Powered-By: PHP/5.2.0

  5. Content-type: text/html
  6. array(2) {

  7. [0]=>
  8. string(8) "10000000"
  9. [1]=>
  10. string(8) "11111101"
  11. }
  12. array(2) {
  13. [0]=>
  14. string(4) "0200"
  15. [1]=>
  16. string(4) "0375"
  17. }
  18. array(2) {
  19. [0]=>
  20. string(2) "80"
  21. [1]=>
  22. string(2) "FD"
  23. }
复制代码

2,二进制、八进制、十六进制转十进制 此转换用乘法,如:1101 转十进制:1*2^3+1*2^2+0*2^1+1*2^0

代码:

<?php 
/**
 *二进制、八进制、十六进制 转十进制
 * edit by bbs.it-home.org
 *
 * @param array $datalist 传入数据array(df,ef)
 * @param int $bin 转换的进制可以是:2,8,16
 * @return array 返回数据 array() 返回没有数据转换的格式
 */
function bin_todec($datalist,$bin)
{
static $arr=array('0'=>0,'1'=>1,'2'=>2,'3'=>3,'4'=>4,'5'=>5,'6'=>6,
'7'=>7,'8'=>8,'9'=>9,'A'=>10,'B'=>11,'C'=>12,'D'=>13,'E'=>14,'F'=>15);
    if(!is_array($datalist))$datalist=array($datalist);
    if($bin==10)return $datalist; //为10进制不转换
    $aOutData=array(); //定义输出保存数组
    foreach ($datalist as $num)
    {
        $atnum=str_split($num); //将字符串分割为单个字符数组
        $atlen=count($atnum);
        $total=0;
        $i=1;
        foreach ($atnum as $tv)
        {
            $tv=strtoupper($tv);
             
            if(array_key_exists($tv,$arr))
            {
                if($arr[$tv]==0)continue;
                $total=$total+$arr[$tv]*pow($bin,$atlen-$i);
            }
            $i++;
        }
        $aOutData[]=$total;
    }
    return $aOutData;
}
?>
Nach dem Login kopieren

测试:

  1. var_dump(bin_todec(array('ff','ff33','cc33'),16));

  2. var_dump(bin_todec(array('1101101','111101101'),2));
  3. var_dump(bin_todec(array('1234123','12341'),8));
  4. X-Powered-By: PHP/5.2.0

  5. Content-type: text/html
  6. array(3) {

  7. [0]=>
  8. int(255)
  9. [1]=>
  10. int(65331)
  11. [2]=>
  12. int(52275)
  13. }
  14. array(2) {
  15. [0]=>
  16. int(124)
  17. [1]=>
  18. int(508)
  19. }
  20. array(2) {
  21. [0]=>
  22. int(342099)
  23. [1]=>
  24. int(5345)
  25. }
复制代码

总结: 在php中内置不少函数可以完成以上的进制转换,比如bindec(),decoct(),dechex() base_convert() decbin()等。 通过本文,带给大家一个实现php中进制转换的思路,希望对大家有所帮助。



Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage