У меня есть 8-битный цветовой код в двоичном виде (RRRGGGBB):
00011001
Мне нужно иметь возможность преобразовать его в шестнадцатеричный код (например, FFFFFF). Как лучше всего преобразовать 8-битный цветовой код в шестнадцатеричный?
Никто здесь не может решить из вещей, представленных в вопросе, как следует производить преобразование, потому что вы дали нулевую информацию об используемой кодировке. Биты могут быть например. индексы в таблице цветов.
Мое предположение:
Ваши биты усекаются из 8-битных чисел RGB. У R и G осталось по 3 старших бита, а у B только 2:
Я вставил нули, но также и цветные биты можно было выбрать по какому-то другому правилу, предполагая, что они были усечены.
Как уже было сказано, это было предположение, и оно может быть абсолютно неверным. Если вы делаете художественный дизайн для игровой системы, программист, который работает в машинном отделении, наверняка может помочь.
Если случилось так, что вы не видите никакой связи между битами 1100 и шестнадцатеричным числом C, вам следует начать с изучения двоичной системы счисления и представления двоичных чисел с шестнадцатеричными числами.
Чуть более вероятное предположение. Он отображает RRRGGGBB=00000000 в шестнадцатеричное 000000 и RRRGGGBB=11111111 в шестнадцатеричное FFFFFF и округляет промежуточные значения.
Два бита BB могут быть 00, 01, 10 или 11. Используйте для них десятичные синие значения 0, 85, 170 и 255 или также шестнадцатеричные значения 00, 55, AA и FF.
RRR и GGG могут иметь десятичные значения от 0 до 7. Умножьте это десятичное значение на 255 и разделите результат на 7. Округлите до ближайшего целого числа и преобразуйте в шестнадцатеричное.
джуджа
Пака