Как работает шестнадцатеричный цвет?

Что означает шестнадцатеричный, который представляет цвет CSS? Как я могу определить, что это за цвет, не запомнив точный код? Имеет ли он какие-либо отношения с системой RGB (и CMYK)?
Я подумал, что FF означает 255 в RGB, но потом я понял, что 15 ^ 2 не 255, а 225.

Ответ 1

Шестнадцатеричное число использует шестнадцать различных символов, в случае цвета css символы 0–9 представляют значения от нуля до девяти (очевидно), а A, B, C, D, E, F представляют значения от десяти до пятнадцати. Таким образом, используя один шестнадцатеричный символ, вы можете представить 16 значений. С двумя шестнадцатеричными вы можете представить 256 (16 * 16) значений.

В RGB вас есть цвета, представленные R ed G reen B lue (R = 0-255, G = 0-255, B = 0-255), поэтому мы используем 3 пары шестнадцатеричных символов! Поэтому, когда вы видите цвет RGB, вы можете сделать расчет ниже.

Пример:

Hex: #4C8ED5 - RGB: 76, 142, 213.

Потому что 4C = 76 (R ed), 8E = 142 (G reen), D5 = 213 (B lue)!

Надеюсь, это поможет вам понять!

Больше читать: шестнадцатеричный в Википедии и хороший конвертер RGB в шестнадцатеричный

Ответ 2

Ответ Nimrod100

В принципе, если у вас есть FF, и это было КРАСНОЕ, потому что мы имеем два hexdigits (0-9, A-F):   F = 15

15 * (16 ^ 0) = 15
15 * (16 ^ 1) = 240

240 + 15 = 255
RED = 255

бит (16 ^ 0) и (16 ^ 1) означает, что мы работаем в базе 16. если вы делали пример KPE 8040FF, мы бы сделали:

F = 15

15 * (16 ^ 0) = 15
15 * (16 ^ 1) = 240

240 + 15 = 255
BLUE = 255

затем

8 * (16 ^ 0) = 8
(BECAUSE WE HAVE 0 WE IGNORE IT)
(16 ^ 1) = 16
(BECAUSE WE IGNORED THE ZERO WE * INSTEAD OF +)
8 * 16 = 128
RED = 128

4 * (16 ^ 0) = 4
(BECAUSE WE HAVE 0 WE IGNORE IT)
(16 ^ 1) = 16
(BECAUSE WE IGNORED THE ZERO WE * INSTEAD OF +)
4 * 16 = 64

GREEN = 64

R = 128
G = 64
B = 255

Если у вас были одиночные гексгиджиты, например. F, что равно 15, поэтому RED = 15

Ответ 3

Код HEX представляет три байта, по одному для каждого из цветов RGB в этом порядке.

FF0000 - полная КРАСНАЯ интенсивность, 00FF00 - полная ЗЕЛЕНАЯ интенсивность, 0000FF - полная BLUE интенсивность

8040FF соответствует 128 красным, 64 зеленым и 255 синим

Вы также можете написать короткую форму, в которой вы не укажете младшие 4 бита каждого байта, например FFF для полного WHITE, F00 для полного RED, 00F для полного BLUE

Ответ 4

Согласно http://quashnick.net/geek_stuff/HEX2DEC.html

Шестнадцатеричное значение цвета представляет собой красный зеленый синий цвет (каждый использует 1 байт). RGB находится в десятичном значении, например RGB (255, 255, 255), но цветовой код Hex в шестнадцатеричном формате #FFFFFF → (R) FF- (G) FF- (B) FF

Номера HEX состоят из цифр от 0 до 9, таких как DEC, но также добавляются A-F. Поэтому при подсчете в HEX: HEX 0 1 2 3 4 5 6 7 8 9 A B   C D E F

DEC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Вот номер HEX: 1E5DF

Чтобы преобразовать это в DEC, нам нужно определить базу для нашей силы функция. Поскольку HEX основан на 16 разных цифрах [0-9A-F], наша база составляет 16.

Чтобы преобразовать из HEX в DEC, выполните следующие действия: Мы знаем, что F = 15 в DEC, поэтому мы используем эту формулу (15 * 16 ^ 0) = 15. Мы знаем, что D = 13 в DEC, поэтому мы используем эту формулу (13 * 16 ^ 1) = 208. Мы знаем, что 5 = 5 в DEC, поэтому мы используем эту формулу (5 * 16 ^ 2) = 1280
Мы знаем, что E = 14 в DEC, поэтому мы используем эту формулу (14 * 16 ^ 3) = 57344
Мы знаем, что 1 = 1 в DEC, поэтому мы используем эту формулу (1 * 16 ^ 4) = 65536

Теперь мы добавим все числа вместе, чтобы получить номер DEC для HEX номер 1E5DF:
15 + 208 + 1280 + 57344 + 65536 = 124383

Итак, наш ответ - HEX 1E5DF = DEC 124383

Подробнее: http://quashnick.net/geek_stuff/HEX2DEC.html
Узнайте больше о цветах: http://www.w3schools.com/html/html_colors.asp

Ответ 5

В шестизначной шестнадцатеричной нотации цифры попарно указывают красный, зеленый и синий компоненты в системе RGB. Например, #0000FF имеет 0 для красного, 0 для зеленого и FF (что равно 15 × 16 + 15 = 255 в десятичной форме), т.е. Максимальное значение для синего (по значению, которое оно имеет в RGB).

В трехзначной нотации каждая цифра удваивается, и результат интерпретируется, как указано выше. Например, #00F означает #0000FF.

Авторитетная ссылка: 4.3.6 Цвета в CSS 2.1 (более новая CSS Values ​​и Units Module Level 3 просто нормативно цитирует CSS 2.1 для этого определения, есть расширения для концепции цвета CSS, но они не влияют на эти проблемы).

RGB и CMYK - разные системы цветов; нет общей формулы преобразования, которая преобразуется между ними.

Ответ 6

Я нашел математическую часть в некоторых других ответах довольно запутанной.

Это на самом деле очень просто. Я нашел хорошее объяснение здесь.

Цвета в компьютерах выражаются путем сочетания красного, зеленого и синего в разных пропорциях. Значения для каждого цвета находятся в диапазоне от 0 до 255. В обозначениях RGB мы выражаем чистый красный цвет, записывая (255,0,0), где зеленый и синий имеют значение 0. Если мы смешиваем одинаковое количество каждого, мы получаем разные оттенки серого., (123,123,123) - некоторый оттенок серого, (0,0,0) обозначает черный и (255,255,255) - белый.

Шестнадцатеричная система принимает те же самые принципы и диапазоны значений и пытается выразить их более коротким способом.

В нашей общей десятичной системе однозначные числа идут от 0 до 9, а затем нам нужно использовать две цифры (то есть 10).

Чтобы продолжать выражать большие числа только одной цифрой, шестнадцатеричная система дает числа от 10 до 15 в виде 1 символа, присваивая им буквы. Итак, теперь: 10 = A, 11 = B, 12 = C, 13 = D, 14 = E, 15 = F. (Буквы могут быть строчными).

Давайте посмотрим, как работает наша десятичная система, поскольку она очень похожа на шестнадцатеричную. В числе 13 первая цифра равна единице, но представляет 10, и чтобы получить тринадцать, мы добавляем 3, 13 = 10 + 3. То есть мы умножаем вторую цифру справа налево всегда на 10, а затем добавляем следующую цифру. 2 в 23 соответствует 20. В шестнадцатеричном формате мы умножаем вторую цифру справа налево всегда на 16. (Шестнадцатеричное означает шестнадцать).

Давайте посмотрим на номер 4С. Здесь мы умножаем 4 на 16, поскольку это второе число справа налево, 4 * 16 = 64. C означает 12, так что теперь мы добавляем его к 64. 64 + 12 = 76, поэтому окончательный ответ 4C = 76.

Чтобы выразить большее число, которое нам нужно написать, мы используем FF, который обозначает 255. Следовательно, мы можем выразить все числа, которые нам нужны для красного, зеленого и синего, с помощью 6 символов.

Чтобы сократить это еще больше, вы можете написать 3 символа, где каждый символ удваивается. Например, # 000 означает # 000000 или #ABC будет #AABBCC

Теперь вы можете догадаться, что такое номер CC9? Этот номер не нужен для обозначения цвета, но он докажет ваше понимание. Подсказка: в десятичном виде 267 означает (2 * 100) + (6 * 10) + (7) или (2 * 10 * 10) + (6 * 10) + (7).

Ответ ниже.

-

-

-

-

(С * 16 * 16) + (С * 16) + (9) =

(12 * 16 * 16) + (12 * 16) + (9) =

3072 + 192 + 9 = 3273