hexdec

(PHP 4, PHP 5)

hexdecПереводит число из шестнадцатиричной системы счисления в десятичную

Описание

number hexdec ( string $hex_string )

Возвращает десятичный эквивалент шестнадцатеричного числа, содержащегося в аргументе hex_string. hexdec() преобразует шестнадцатеричную строку в десятичное число.

hexdec() игнорирует любые обнаруженные не-шестнадцатеричные символы.

Список параметров

hex_string

Шестнадцатеричная строка для преобразования

Возвращаемые значения

Десятичное представление hex_string

Список изменений

Версия Описание
4.1.0 Теперь функция может преобразовывать числа, слишком большие для того, чтобы вместиться в тип integer для имеющейся платформы. В этом случае значения возвращаются как тип float.

Примеры

Пример #1 Пример использования hexdec()

<?php
var_dump
(hexdec("See"));
var_dump(hexdec("ee"));
// в обоих случаех будет выведено "int(238)"

var_dump(hexdec("that")); // выведет "int(10)"
var_dump(hexdec("a0")); // выведет "int(160)"
?>

Смотрите также

  • dechex() - Переводит число из десятичной системы счисления в шестнадцатиричную
  • bindec() - Двоичное в десятичное
  • octdec() - Переводит число из восьмеричной системы счисления в десятичную
  • base_convert() - Преобразование числа между произвольными системами счисления

Коментарии

From color to color to ...... to color with fade effect. Good for dynamic bar chart.

<?php
//MultiColorFade(array hex-colors, int steps)
function MultiColorFade($hex_array$steps) {

$tot count($hex_array);
$gradient = array();
$fixend 2;
$passages $tot-1;
$stepsforpassage floor($steps/$passages);
$stepsremain $steps - ($stepsforpassage*$passages);

   for(
$pointer 0$pointer $tot-$pointer++) {
 
       
$hexstart $hex_array[$pointer];
       
$hexend $hex_array[$pointer 1];

       if(
$stepsremain 0){
           if(
$stepsremain--){
               
$stepsforthis $stepsforpassage 1;
           }
       }else{
           
$stepsforthis $stepsforpassage;
       }
   
       if(
$pointer 0){
           
$fixend 1;         
       }
   
       
$start['r'] = hexdec(substr($hexstart02));
       
$start['g'] = hexdec(substr($hexstart22));
       
$start['b'] = hexdec(substr($hexstart42));

       
$end['r'] = hexdec(substr($hexend02));
       
$end['g'] = hexdec(substr($hexend22));
       
$end['b'] = hexdec(substr($hexend42));
 
       
$step['r'] = ($start['r'] - $end['r']) / ($stepsforthis);
       
$step['g'] = ($start['g'] - $end['g']) / ($stepsforthis);
       
$step['b'] = ($start['b'] - $end['b']) / ($stepsforthis);
   
       for(
$i 0$i <= $stepsforthis-$fixend$i++) {
 
           
$rgb['r'] = floor($start['r'] - ($step['r'] * $i));
           
$rgb['g'] = floor($start['g'] - ($step['g'] * $i));
           
$rgb['b'] = floor($start['b'] - ($step['b'] * $i));
 
           
$hex['r'] = sprintf('%02x', ($rgb['r']));
           
$hex['g'] = sprintf('%02x', ($rgb['g']));
           
$hex['b'] = sprintf('%02x', ($rgb['b']));
 
           
$gradient[] = strtoupper(implode(NULL$hex));
       }
   }
 
   
$gradient[] = $hex_array[$tot-1];
 
return 
$gradient;
}
//end MultiColorFade()

//start test
$multi_hex_array = array();
$multi_hex_array[] = array('FF0000','FFFF00');
$multi_hex_array[] = array('FF0000','FFFF00','00FF00');
$multi_hex_array[] = array('FF0000','FFFF00','00FF00','00FFFF');
$multi_hex_array[] = array('FF0000','FFFF00','00FF00','00FFFF','0000FF');
$multi_hex_array[] = array('FF0000','FFFF00','00FF00','00FFFF','0000FF','000000');
$multi_hex_array[] = array('FF0000','FFFF00','00FF00','00FFFF','0000FF','000000','FFFFFF');

foreach(
$multi_hex_array as $hex_array){

   
$totcolors count($hex_array);
   
$steps 44;

   
$a MultiColorFade($hex_array$steps);
   
$tot count($a);

   
$table '<table border=1 width="300">' "\n";

   for (
$i 0$i $tot$i++){
       
$table .= ' <tr><td bgcolor="' $a[$i] . '">' . ($i+1) .'</td><td><pre>' $a[$i] . '</pre></td></tr>' "\n";
   }
 
   
$table .= '</table><br /><br />';
 
   echo 
'<br />Demanded steps = ' $steps '<br />';
   echo 
'Returned steps = ' $tot;
 
   if(
$steps == $tot){
       echo 
'<br />OK.' $steps ' = ' $tot '<br />';
   }else{
       echo 
'<br /><span style="color:#FF0000">FAILED! Demanded steps and returned steps are NOT equal!: ' $steps ' != ' $tot '</span><br />';
   }

   echo 
$table;
 
}
//end test
?>

Repley.
2006-05-28 21:55:32
http://php5.kiev.ua/manual/ru/function.hexdec.html
Use this function to convert a hexa decimal color code to its RGB equivalent. Unlike many other functions provided here, it will work correctly with hex color short hand notation.

Also, if a proper hexa decimal color value is given (6 digits), it uses bit wise operations for faster results.

For eg: #FFF and #FFFFFF will produce the same result

<?php
/**
 * Convert a hexa decimal color code to its RGB equivalent
 *
 * @param string $hexStr (hexadecimal color value)
 * @param boolean $returnAsString (if set true, returns the value separated by the separator character. Otherwise returns associative array)
 * @param string $seperator (to separate RGB values. Applicable only if second parameter is true.)
 * @return array or string (depending on second parameter. Returns False if invalid hex color value)
 */                                                                                                 
function hex2RGB($hexStr$returnAsString false$seperator ',') {
   
$hexStr preg_replace("/[^0-9A-Fa-f]/"''$hexStr); // Gets a proper hex string
   
$rgbArray = array();
    if (
strlen($hexStr) == 6) { //If a proper hex code, convert using bitwise operation. No overhead... faster
       
$colorVal hexdec($hexStr);
       
$rgbArray['red'] = 0xFF & ($colorVal >> 0x10);
       
$rgbArray['green'] = 0xFF & ($colorVal >> 0x8);
       
$rgbArray['blue'] = 0xFF $colorVal;
    } elseif (
strlen($hexStr) == 3) { //if shorthand notation, need some string manipulations
       
$rgbArray['red'] = hexdec(str_repeat(substr($hexStr01), 2));
       
$rgbArray['green'] = hexdec(str_repeat(substr($hexStr11), 2));
       
$rgbArray['blue'] = hexdec(str_repeat(substr($hexStr21), 2));
    } else {
        return 
false//Invalid hex color code
   
}
    return 
$returnAsString implode($seperator$rgbArray) : $rgbArray// returns the rgb string or the associative array
?>

OUTPUT:

hex2RGB("#FF0") -> array( red =>255, green => 255, blue => 0)
hex2RGB("#FFFF00) -> Same as above
hex2RGB("#FF0", true) -> 255,255,0
hex2RGB("#FF0", true, ":") -> 255:255:0
2010-08-19 06:31:00
http://php5.kiev.ua/manual/ru/function.hexdec.html

    Поддержать сайт на родительском проекте КГБ