Рейтинг:
1
Patrice T
Вы должны преобразовать шестнадцатеричный код в двоичный
#AA0099 1010 1010 0000 0000 1001 1001
? #009966 0000 0000 1001 1001 0110 0110
======= =============================
= #AA99FF 1010 1010 1001 1001 1111 1111
и выясните, какая операция используется. В этом примере или может поместиться, + тоже ...
Проделайте то же самое со вторым примером.
Рейтинг:
1
Graeme_Grant
Для меня это выглядит как простая математика. Я думаю, что ваш второй результат неверен.
Вот он в C#, так как ни один язык не был упомянут:
var col1 = new[] { 0xAA0099, 0x339900, 0x006699 };
var col2 = new[] { 0x009966, 0x990066, 0xEF4321 };
for (int i = 0; i < col1.Length; i++)
{
Console.WriteLine($"{col1[i].ToString("X6")} + {col2[i].ToString("X6")} = {(col1[i] + col2[i]).ToString("X6")}");
}
Который выводит:
AA0099 + 009966 = AA99FF
339900 + 990066 = CC9966
006699 + EF4321 = EFA9BA
После разговора с ppolymorphe вы можете сделать следующее побитовое действие:
int[] col1 = new int[] { 0xAA0099, 0x339900, 0x006699 };
int[] col2 = new int[] { 0x009966, 0x990066, 0xEF4321 };
uint mask = (1 << 16) - 1;
for (int i = 0; i < col1.Length; i++)
{
var answer = (col1[i] | col2[i]) & mask | 0xaa0000;
Console.WriteLine($"{col1[i].ToString("X6")} ? {col2[i].ToString("X6")} = {answer.ToString("X6")}");
}
Который выводит:
AA0099 ? 009966 = AA99FF
339900 ? 990066 = AA9966
006699 ? EF4321 = AA67B9
Patrice T
Я боюсь, что это не простое дополнение, второй образец id неправильный.
Graeme_Grant
Немного контекста поможет. Я уже упоминал, что, по моему мнению, его 2-й пример дал неправильный результат. Но он может и не захотеть менять красный канал. Это RGB, HSL и т. д.?
Patrice T
Ладно, я не читал вашего решения
На самом деле второй образец верен, это просто не сложение; это еще одна побитовая операция.
Graeme_Grant
обновлено, чтобы дать те же ответы... ;)
Patrice T
Все еще неверно, ответ-это единственный оператор, который вы не использовали ^.
Graeme_Grant
ах... глупый я... один оператор, чтобы управлять ими всеми... Мне следовало бы прочитать его получше... спасибо, что поправил меня...
Patrice T
- один оператор, чтобы управлять ими всеми..."
Повелитель ксора ... :)