Как преобразовать 8-битный цветовой код в обычный шестнадцатеричный код?

У меня есть 8-битный цветовой код в двоичном виде (RRRGGGBB):

00011001

Мне нужно иметь возможность преобразовать его в шестнадцатеричный код (например, FFFFFF). Как лучше всего преобразовать 8-битный цветовой код в шестнадцатеричный?

Этот вопрос относится к stackocerflow.
@joojaa Я спрашивал в stackoverflow, но, к сожалению, он был закрыт

Ответы (1)

Никто здесь не может решить из вещей, представленных в вопросе, как следует производить преобразование, потому что вы дали нулевую информацию об используемой кодировке. Биты могут быть например. индексы в таблице цветов.

Мое предположение:

Ваши биты усекаются из 8-битных чисел RGB. У R и G осталось по 3 старших бита, а у B только 2:

введите описание изображения здесь

Я вставил нули, но также и цветные биты можно было выбрать по какому-то другому правилу, предполагая, что они были усечены.

Как уже было сказано, это было предположение, и оно может быть абсолютно неверным. Если вы делаете художественный дизайн для игровой системы, программист, который работает в машинном отделении, наверняка может помочь.

Если случилось так, что вы не видите никакой связи между битами 1100 и шестнадцатеричным числом C, вам следует начать с изучения двоичной системы счисления и представления двоичных чисел с шестнадцатеричными числами.

Чуть более вероятное предположение. Он отображает RRRGGGBB=00000000 в шестнадцатеричное 000000 и RRRGGGBB=11111111 в шестнадцатеричное FFFFFF и округляет промежуточные значения.

  1. Два бита BB могут быть 00, 01, 10 или 11. Используйте для них десятичные синие значения 0, 85, 170 и 255 или также шестнадцатеричные значения 00, 55, AA и FF.

  2. RRR и GGG могут иметь десятичные значения от 0 до 7. Умножьте это десятичное значение на 255 и разделите результат на 7. Округлите до ближайшего целого числа и преобразуйте в шестнадцатеричное.

Спасибо за идею, я собирался сделать это на С++, чтобы распечатать изображения для операционной системы. Я подумал, что это лучшее место, где я могу получить ответ, кроме переполнения стека.