hexdec
hexdec($hex_string)
Zamienia liczbę zapisaną szesnastkowo na zwykłą liczbę. Wielkość liter nie ma znaczenia.
Parametry
- $hex_string – szesnastkowy zapis liczby.
Przykłady
echo hexdec("ff"); // 255
echo hexdec("FF"); // 255
echo hexdec("1000"); // 4096
// wynik jest liczbą
var_dump(hexdec("a")); // int(10)
// składowe koloru z zapisu CSS – najpierw usuń znak #
$color = ltrim("#ff6600", "#");
echo hexdec(substr($color, 0, 2)) . ", " . hexdec(substr($color, 2, 2)) . ", " . hexdec(substr($color, 4, 2)); // 255, 102, 0
// to samo przez sscanf
print_r(sscanf("#ff6600", "#%2x%2x%2x")); // Array ( [0] => 255 [1] => 102 [2] => 0 )
// liczbę szesnastkową można też zapisać bezpośrednio w kodzie
echo 0xff; // 255
// zapis dłuższy niż zakres liczb całkowitych daje liczbę dziesiętną (float)
var_dump(is_float(hexdec("ffffffffffffffff"))); // bool(true)
Na co uważać
- Znaki, które nie należą do systemu szesnastkowego (na przykład # albo spację), pomija. Do PHP 7.3 po cichu, od PHP 7.4 z komunikatem o przestarzałym użyciu. Dlatego wejście najpierw oczyść i sprawdź funkcją ctype_xdigit().
- Traktuje wejście jako liczbę bez znaku. Zapis liczby ujemnej z dechex() wraca jako duża liczba dodatnia.
- Dla zapisu dłuższego niż zakres liczb całkowitych zwraca liczbę dziesiętną (float) o ograniczonej dokładności.
- Zapis szesnastkowy na bajty zamienia hex2bin(), a nie hexdec.
Powiązane funkcje:
dechex()
bindec()
base_convert()