среда, 23 января 2013 г.

Функция перевода из троичной системе в семнадцатиричную систему счисления

function convert_3to17($d){
 $array = str_split($d); //разбиваем число на символы помещая в массив
 $source=3; //определяем исходную и конечную систему счисления
 $dest=17; 
 for($i=0; $i$source){
   $var = 0;
   }
   else{ 
   $var=1;
   }
 } 
 
 if($var!=0){ //если не прошло проверку, то ругаемся на пользователя
  $deg = count($array)-1; //определяем степень от цифр в массиве -1
  
  for($i=0; $i"0",1=>"1",2=>"2",3=>"3",
        4=>"4",5=>"5",6=>"6",7=>"7",
           8=>"8",9=>"9",10=>"A",11=>"B",
           12=>"C",13=>"D",14=>"E",15=>"F",
           16=>"G");
       
   
 $i=0;
 do //делис число на основание системы, до тех пор пока оно не станет единицей 
  if( $decSystem % $dest==0 ){ 
   $stack[$i++] = $decSystem % $dest; //запишем в стек остаток от деления 0
   $decSystem = $decSystem/$dest; //обновим наше число которое уже поделили
  
  } else if( $decSystem % $dest!=0 ){  
   $stack[$i++] = $decSystem % $dest; //запишем в стек остаток от деления
   $decSystem = ($decSystem -($decSystem % $dest)) / $dest;//обновим наше число которое уже поделили и отнимем от него ненужный остаток
   }
 while($decSystem>=1); 
 
  $stack = array_reverse($stack); //перевернем стек верх ногами
  for($i=0; $i


function bsearch ($array, $x){
 $start=0; 
 $end=count($array);
 while($start<$end){
  $M = round(($start + $end)/2);
  if ($x < $array[$M]) {
   $end = $M - 1;}
  else if ($x > $array[$M]){
   $start = $M + 1;}
  else
   return true;
 
 if ($start==$end) return false;
 }
}

1 комментарий: