close
تبلیغات در اینترنت
تبدیل عدد ( دسیمال ) به هر مبنایی در php
loading...

آموزش برنامه نویسی

جهت تبدیل به هر مبنایی جدول مبنای مورد نظر را در خط سوم قرار دهید باینری = '01' هشتایی = '01234567'   کاریرد اصلی این قطعه کد فشرده سازی یک عدد و در سایت های مثل "کوتاه کننده ی آدرس وب سایت" استفاده می شود.     <?php header("Content-Type: text/html; charset=utf-8");   class BaseConvert{   var $chars='0123456789abcdef'; // convert to hex     public function __construct(){ $table=$this->chars; $size=strlen($table);…

aalmair بازدید : 580 شنبه 04 آبان 1392 نظرات ()

جهت تبدیل به هر مبنایی جدول مبنای مورد نظر را در خط سوم قرار دهید

باینری = '01'

هشتایی = '01234567'
 
کاریرد اصلی این قطعه کد فشرده سازی یک عدد و در سایت های مثل "کوتاه کننده ی آدرس وب سایت" استفاده می شود.
 
 
<?php
   header("Content-Type: text/html; charset=utf-8");  
 
class BaseConvert{
 
     var $chars='0123456789abcdef'; // convert to hex
 
 
  public  function __construct(){
         $table=$this->chars;
         $size=strlen($table);
         if($size<=1){
             die('تعداد کاراکتر ها بیشتر از یک می باشد.') ;
         }
         for($i=0;$i<$size;$i++){
             for($j=0;$j<$i;$j++){
                 if($table[$i]==$table[$j]){
                    die('کاراکتر تکراری غیر مجاز است') ; 
                 }
             }
 
         }
 
     }    
  public  function number2base($int_str=""){
                $size_int=strlen($int_str) ;
                $t=0;
                $table=$this->chars;
                $size_table=strlen($table);
 
                while($t<$size_int&&$int_str[$t]==" "){
                     $t++;  
                }
                  $size_int-=$t;
                  $int_str=substr($int_str,$t);
 
 
               if(!is_numeric($int_str)) {
                    return 0;
               }else{
                   for($j=0;$j<$size_int;$j++){
                       if($int_str[$j]=="."){
                           return 0;
                       }
                   }
               }
 
 
 
            $rev=array();
            $res="";
 
          while($int_str>=1){
 
              $rev[]=bcmod($int_str,$size_table);
 
 
              $int_str=bcdiv ($int_str,$size_table);
 
          }
            for($i=count($rev)-1;$i>=0;$i--){
 
               $res.=$table[$rev[$i]]; 
 
 
         }
        return($res);
 
     }
  public  function base2number($str=""){
 
         $table=$this->chars;
         $size_str=strlen($str);
         $size_table=strlen($table);
 
         $rev=array();
         $res="0"; 
 
 
       for($j=0;$j<$size_str;$j++){
 
             $is_true=0;
 
             for($i=0;$i<$size_table;$i++){
 
               if($str[$j]==$table[$i]){
                      $is_true=1;
                      $res=bcmul($size_table,$res)+$i;
                      break;
               }
           }
           if(!$is_true){
               die('error');
               return 0;
           }
 
 
 
       }
 
           return ($res);
 
 
 
 
 
     }
 
}  
 
 
 
 
   $t=new BaseConvert();
   $number='255';
   $en=$t->number2base($number);
   $de=$t->base2number($en);
 
   echo "<div dir=rtl><span>تبدیل : </span><span style='color:blue;font-size:150%;'>".$en."</span>";
   echo '<br>';
   echo "<span>برعکس :</span><span style='color:blue;font-size:150%;'>".$de."</span></div>";
 
 
 
?>    
 

مطالب مرتبط
ارسال نظر برای این مطلب

نام
ایمیل (منتشر نمی‌شود) (لازم)
وبسایت
:) :( ;) :D ;)) :X :? :P :* =(( :O @};- :B /:) :S
نظر خصوصی
مشخصات شما ذخیره شود ؟ [حذف مشخصات] [شکلک ها]
کد امنیتیرفرش کد امنیتی
تبلیغات
Rozblog.com رز بلاگ - متفاوت ترين سرويس سایت ساز
اطلاعات کاربری
نام کاربری :
رمز عبور :
  • فراموشی رمز عبور؟
  • نویسندگان
    نظرسنجی
    قالب سایت؟




    بیشتر چه نوع مطالبی رو میپسندید؟





    آمار سایت
  • کل مطالب : 588
  • کل نظرات : 391
  • افراد آنلاین : 1
  • تعداد اعضا : 3329
  • آی پی امروز : 54
  • آی پی دیروز : 65
  • بازدید امروز : 146
  • باردید دیروز : 217
  • گوگل امروز : 6
  • گوگل دیروز : 15
  • بازدید هفته : 363
  • بازدید ماه : 3,638
  • بازدید سال : 58,468
  • بازدید کلی : 2,058,714