Я смотрю на оригинальный исходный код для идентификаторов.
Есть немного кода, который немного вертится, чтобы извлечь красный, зеленый и синий компоненты:
int blue = (code >> 16) & 0x01f;
int green = (code >> 21) & 0x01f;
int red = (code >> 27) & 0x01f;
Переменная кода представляет собой 32-разрядное целое число.
У меня такой вопрос: в чем разница между числом 0x01 и 0x01f?
Я предполагаю, что f означает, что значение является float, но зачем делать это float? Это то, что представление с плавающей точкой в двоичном формате отличается от целочисленного представления? Не приведет ли это к проблемам по переносимости при переносе, если конкретный язык не использует то же представление?
Кроме того, я, вероятно, читаю это неправильно из-за непонимания проблемы 0x01f, но разве это не просто установка красного, зеленого и синего представлений в 0 или 1, в зависимости от младшего значащего бита?