#FFFFFF
, так просто
каждый символ имеет диапазон 0..F
. Это 0..15
. Таким образом, два символа 0..(16*16-1) -> 0-255
Для преобразования между форматами просто подумайте:
#AABBCC
- это три значения AA BB CC
. Каждое отдельное значение представляет канал (красный, зеленый, синий), который может варьироваться от 0
до 255
или от 0
до FF
или от 0.0
до 1.0
если у вас есть например # 123456, вы можете сделать
12 -> 1*16 + 2 = .. (result in range 0-255)
34 -> 3*16 + 4 = ..
56 -> 5*16 + 6 = ..
в общем случае шестнадцатеричное число из двух цифр, составленное из XY
, можно преобразовать в десятичное значение, умножив X
на 16 и добавив Y
, заботясь о преобразовании цифр больше 9 (A, B, C , D, E, F) своим аналогам (10, 11, 12, 13, 14, 15). Так, например, AC
будет A*16 + C = 10*16 + 12
.
(Чтобы быть точным, шестнадцатеричное число n преобразуется путем умножения i-й цифры справа на 16 ^ i и сложения всех их вместе)